1
我试图创建一个modrewrite规则将改变的特定部分:简单modrewrite删除路径
/blah/correct/xyz.htm
到
/correct/xyz.htm
没有总是/blah
但是当它在那里,它总是出现在URL的开头。该URL可以是任意长度的,具有多个子路径。它甚至可能是/blah/myfile.htm
(它应该重写为/myfile.htm
)。
这样做的最好方法是什么?
我试图创建一个modrewrite规则将改变的特定部分:简单modrewrite删除路径
/blah/correct/xyz.htm
到
/correct/xyz.htm
没有总是/blah
但是当它在那里,它总是出现在URL的开头。该URL可以是任意长度的,具有多个子路径。它甚至可能是/blah/myfile.htm
(它应该重写为/myfile.htm
)。
这样做的最好方法是什么?
启用mod_rewrite的,并通过httpd.conf
的.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]
现在检查编辑答案。 – anubhava
辉煌 - 完美的作品。谢谢! – Eric
不客气,很高兴它解决了。 – anubhava