简单的modrewrite删除路径的特定部分

时间:2013-06-21 17:08:52

标签: apache .htaccess mod-rewrite

我正在尝试创建一个将改变的modrewrite规则:

/blah/correct/xyz.htm

/correct/xyz.htm

并不总是/blah但是当它出现时,它总是出现在URL的开头。 URL可以是任意长度,具有多个子路径。它甚至可能是/blah/myfile.htm(应该只重写为/myfile.htm)。

最好的方法是什么?

1 个答案:

答案 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]