htaccess用htaccess从干净的网址中删除可变污垢

时间:2012-08-13 05:46:25

标签: php .htaccess

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

干净的网址是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]

THX 领域

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分: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]