使用.htaccess重定向站点,但在重新指定index.php时排除一个文件夹

时间:2017-01-16 11:13:36

标签: .htaccess redirect

我有一个域名,其中包含安装在根目录中的商店和名为/ web /

的子文件夹中的WordPress
/public_html/ # shop
            /web/ # wordpress

我正在将商店搬到新域名。 WordPress仍然存在。

我希望301重定向所有商店页面但排除WordPress请求。这部分有效。

# Redirect shop to new domain
RewriteEngine on
RewriteCond %{REQUEST_URI} !^web($|/)$ 
RewriteRule (.*) http://www.new-domain.co.uk/$1 [R=301,L]

以下类似的主题引导我进入上述解决方案。

我现在要做的是让访问旧域的访问者只需重定向到/ web /。我尝试过添加:

RewriteCond %{REQUEST_URI} !^/index\.php$

但这不能排除根索引文件。

我想我在那里需要另一个RewriteRule。

1 个答案:

答案 0 :(得分:0)

经过更多的反复试验后,我得出了以下对我有用的结果。

# Redirect shop to new domain
RewriteEngine on
RewriteCond %{REQUEST_URI} !^web($|/)$ 
RewriteCond %{REQUEST_URI} !^/$
RewriteRule (.*) http://www.new-domain.co.uk/$1 [R=301,L]

# Redirect root to /web/
RewriteCond %{REQUEST_URI} ^/$
RewriteRule (.*) http://www.current-domain.co.uk/web/$1 [R=301,L]

我编辑了第一个RewriteRule并排除了根“/”

然后我创建了第二个RewriteRule,只将根移动到“/ web /”