我正在尝试创建一个会改变的 modrewrite 规则:
/blah/correct/xyz.htm
至
/correct/xyz.htm
并不总是/blah
存在,但当它存在时,它总是出现在 URL 的开头。URL 可以是任意长度,具有许多子路径。它甚至可能是/blah/myfile.htm
(应该只是重写为/myfile.htm
)。
最好的方法是什么?
我正在尝试创建一个会改变的 modrewrite 规则:
/blah/correct/xyz.htm
至
/correct/xyz.htm
并不总是/blah
存在,但当它存在时,它总是出现在 URL 的开头。URL 可以是任意长度,具有许多子路径。它甚至可能是/blah/myfile.htm
(应该只是重写为/myfile.htm
)。
最好的方法是什么?
通过启用 mod_rewrite 和 .htaccess httpd.conf
,然后将此代码放在您.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]