.htaccess子目录重写异常

时间:2013-08-20 05:05:53

标签: regex wordpress .htaccess mod-rewrite url-rewriting

我目前正在合并我们最近获得的网站上的帖子,这些网站有多个WordPress安装来管理内容,一个在public_html文件夹中,另一个在子目录中,如下所示:

1. http://domain.com/
2. http://domain.com/another-install/

我们正在将所有内容从/another-install/移至主设置,并使用301重定向从所有旧链接中移除/another-install/,如下所示:

RedirectMatch 301 ^/another-install/(.*) http://domain.com/$1

导致所有重定向的文章如下:

http://domain.com/another-install/article-name/
TO
http://domain.com/article-name/

问题是,我们希望将/another-install/视为一个页面。使用当前重定向,http://domain.com/another-install/转到http://domain.com/。有没有办法添加异常,或重写当前规则以使/another-install/可以查看?

2 个答案:

答案 0 :(得分:0)

将正则表达式从(.*)(与任何字符的0或更多匹配)更改为(.+)(与任何字符中的1个或更多匹配)。这意味着必须有/another-install/之后的内容才能进行重定向。

答案 1 :(得分:0)

您需要RewriteRule来指定排除对象。将其添加到您的.htaccess文件

RewriteCond %{REQUEST_URI} !^/old-install/(index\.wml)?$ [NC]
RewriteRule ^old-install/(.+)$ http://domain.com/$1 [R=301,NC,L]