我正在尝试创建一个会改变的 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]