0

我正在使用干净的 url 和 mod rewrite,并且在解析字符串时遇到了一个小问题,

有效的干净网址是 url.com/_flie-23.html

RewriteRule ^_file-(.*)$ %{DOCUMENT_ROOT}/newFile/$1 [L]

但是我收到了一些失败的请求,例如 url.com/dirt/_flie-23.html。这现在错过了重写测试。我尝试了以下方法,它适用于 /dirt/ 但不适用于干净。有什么建议我会怎么做?

RewriteRule ^([^/]+)_file-(.*)$ %{DOCUMENT_ROOT}/newFile/$2 [L]

更新DoH!只需要更改为

RewriteRule ^(.*)_file-(.*)$ %{DOCUMENT_ROOT}/newFile/$2 [L]

谢谢艺术

4

2 回答 2

0

您始终可以对清洁和污垢变化使用单独的规则:

RewriteRule ^_file-(.*)$ %{DOCUMENT_ROOT}/newFile/$1 [L]
RewriteRule ^([^/]+)/_file-(.*)$ %{DOCUMENT_ROOT}/newFile/$2 [L]
#                   ^----- though I think  you are missing a slash here

否则,您可以使用?使分组成为可选,并更改反向引用:

RewriteRule ^(([^/]+)/)?_file-(.*)$ %{DOCUMENT_ROOT}/newFile/$3 [L]
于 2012-08-13T06:00:10.923 回答
0
RewriteRule ^(.*)_file-(.*)$ %{DOCUMENT_ROOT}/newFile/$2 [L]
于 2012-08-13T06:23:23.597 回答