Symfony 1.4 为 pdf 文件创建路径
Symfony 1.4 create route for pdf files
我想为以下网址创建路由。
一切都以 pdf
开始并以 .pdf
结束
site.com/en/pdf/aaa/bbb/file.pdf
site.com/pdf/aaa/bbb/file.pdf
site.com/pdf/file.pdf
...
我的代码是:
global_pdf:
class: myRequestRoute
url: /:sf_culture/pdf/*/*.pdf
param: { module: pdf, action: showEmbed }
requirements: { sf_method: get }
但是没用。
怎么做?
谢谢。
您的匹配项应该是以冒号开头的变量:
culture_dir_pdf:
url: /:sf_culture/pdf/:dirname/:filename.pdf
param: { module: pdf, action: showEmbed }
requirements: { sf_method: get }
culture_pdf:
url: /:sf_culture/pdf/:filename.pdf
param: { module: pdf, action: showEmbed }
requirements: { sf_method: get }
global_dir_pdf:
url: /pdf/:dirname/:filename.pdf
param: { module: pdf, action: showEmbed }
requirements: { sf_method: get }
# ...
然后您可以在 showEmbed 操作中使用这些请求变量。
如果您需要高级匹配逻辑,我会使用 Apache Rewrite 将 PDF 请求指向单个 URL,然后您在 routing.yml 中添加 URL。
您的路由需要涵盖四种不同的场景:
- 路线必须完全匹配格式:site.com/pdf/file.pdf
- route 必须与 pdf 之前的语言相匹配:site.com/en/pdf/file.pdf
- route 必须与 pdf 之后的任何内容匹配:site.com/pdf/aaa/bbb/file.pdf
- 路线必须与 pdf 之前和之后的语言相匹配:site.com/en/pdf/aaa/bbb/file.pdf
以下路线应涵盖上述各项。
global_pdf_1:
class: myRequestRoute
url: /pdf/:filename.pdf
param: { module: location, action: test }
requirements: { sf_method: get }
global_pdf_2:
class: myRequestRoute
url: /pdf/:anything/:filename.pdf
param: { module: location, action: test }
requirements: { sf_method: get, anything: .* }
global_pdf_3:
class: myRequestRoute
url: /:sf_culture/pdf/:filename.pdf
param: { module: location, action: test }
requirements: { sf_method: get }
global_pdf_4:
class: myRequestRoute
url: /:sf_culture/pdf/:anything/:filename.pdf
param: { module: location, action: test }
requirements: { sf_method: get, anything: .* }
我想为以下网址创建路由。
一切都以 pdf
开始并以 .pdf
site.com/en/pdf/aaa/bbb/file.pdf
site.com/pdf/aaa/bbb/file.pdf
site.com/pdf/file.pdf
...
我的代码是:
global_pdf:
class: myRequestRoute
url: /:sf_culture/pdf/*/*.pdf
param: { module: pdf, action: showEmbed }
requirements: { sf_method: get }
但是没用。
怎么做?
谢谢。
您的匹配项应该是以冒号开头的变量:
culture_dir_pdf:
url: /:sf_culture/pdf/:dirname/:filename.pdf
param: { module: pdf, action: showEmbed }
requirements: { sf_method: get }
culture_pdf:
url: /:sf_culture/pdf/:filename.pdf
param: { module: pdf, action: showEmbed }
requirements: { sf_method: get }
global_dir_pdf:
url: /pdf/:dirname/:filename.pdf
param: { module: pdf, action: showEmbed }
requirements: { sf_method: get }
# ...
然后您可以在 showEmbed 操作中使用这些请求变量。
如果您需要高级匹配逻辑,我会使用 Apache Rewrite 将 PDF 请求指向单个 URL,然后您在 routing.yml 中添加 URL。
您的路由需要涵盖四种不同的场景:
- 路线必须完全匹配格式:site.com/pdf/file.pdf
- route 必须与 pdf 之前的语言相匹配:site.com/en/pdf/file.pdf
- route 必须与 pdf 之后的任何内容匹配:site.com/pdf/aaa/bbb/file.pdf
- 路线必须与 pdf 之前和之后的语言相匹配:site.com/en/pdf/aaa/bbb/file.pdf
以下路线应涵盖上述各项。
global_pdf_1:
class: myRequestRoute
url: /pdf/:filename.pdf
param: { module: location, action: test }
requirements: { sf_method: get }
global_pdf_2:
class: myRequestRoute
url: /pdf/:anything/:filename.pdf
param: { module: location, action: test }
requirements: { sf_method: get, anything: .* }
global_pdf_3:
class: myRequestRoute
url: /:sf_culture/pdf/:filename.pdf
param: { module: location, action: test }
requirements: { sf_method: get }
global_pdf_4:
class: myRequestRoute
url: /:sf_culture/pdf/:anything/:filename.pdf
param: { module: location, action: test }
requirements: { sf_method: get, anything: .* }