mod_rewrite重定向目录中除目录本身之外的所有内容

时间:2013-10-22 02:55:44

标签: wordpress apache .htaccess mod-rewrite

我将使用Wordpress作为我网站的新CMS,并将使用许多页面的永久链接。问题是Wordpress之外有许多旧页面和文件需要保留在与永久链接重叠的目录中。例如,WP页面的永久链接将位于: http://www.domain.com/support/

但我有几个php应用程序和其他文件,人们仍然在/ support /目录中使用,需要通过相同的URL访问。如果与永久链接位于同一位置的目录,则忽略永久链接。

我一直在研究这个问题,发现我可以重命名物理目录(例如“A-support”),然后将除指向确切目录的url之外的所有内容重定向到新位置。< / p>

所以这不应该重定向:
http://www.domain.com/support/

但是所有这些应该重定向到新的/ A-support /目录位置: http://www.domain.com/support/page.html
http://www.domain.com/support/subdirectory/
http://www.domain.com/support/subdirectory/page.html

这是我到目前为止的.htaccess规则似乎没有工作,因为它只是将所有内容直接重定向到/ A-support /文件夹中,而不适用于子目录:

RewriteCond %{REQUEST_URI} support/(.+)$
RewriteCond %{REQUEST_URI} !support/(.+)/$
RewriteRule ^support/(.+)$ http://www.domain.com/A-support/ [L]

我查看了文档,但这对我来说是一个相对混乱的功能,我似乎无法做到正确。

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

请改为尝试:

RewriteRule ^support/(.+)$ http://www.domain.com/A-support/$1 [L]

您遗漏的主要内容是$1反向引用。这不应该重定向/support/以及其中的任何内容。您不需要任何其他条件。