我正在尝试创建一个将改变的modrewrite规则:
/blah/correct/xyz.htm
到
/correct/xyz.htm
并不总是/blah
但是当它出现时,它总是出现在URL的开头。 URL可以是任意长度,具有多个子路径。它甚至可能是/blah/myfile.htm
(应该只重写为/myfile.htm
)。
最好的方法是什么?
答案 0 :(得分:1)
通过httpd.conf
启用mod_rewrite和.htaccess,然后将此代码放在.htaccess
目录下的DOCUMENT_ROOT
中:
Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /
RewriteRule (?:^|/)blah(/.+)$ /$1 [L,NC]
这将在内部将/blah/foo
转发至/foo
或/blah/correct/foo
转至/correct/foo
。如果您想要外部重写,请使用:
RewriteRule (?:^|/)blah(/.+)$ /$1 [L,R=301,NC]