2013-08-01 157 views
1

我有一些301重定向的问题。并非所有的规则都起作用。我注意到,特别是,重定向文件夹的规则是不起作用的。301重定向文件夹不工作

这些是的cPanel产生的规则中:

RewriteCond %{HTTP_HOST} ^domain\.org$ [OR] 
RewriteCond %{HTTP_HOST} ^www\.domain\.org$ 
RewriteRule ^index\.html$ "http\:\/\/www\.domain\.org\/" [R=301,L] 

RewriteCond %{HTTP_HOST} ^domain\.org$ [OR] 
RewriteCond %{HTTP_HOST} ^www\.domain\.org$ 
RewriteRule ^subfolder\/$ "http\:\/\/www\.domain\.org\/" [R=301,L] 

第一个基本上说来重定向到domain.org/index.htmldomain.org/它工作正常。但第二个意图重定向domain.org/subfolder/domain.org没有。

301重定向可以将访问重定向到文件夹吗?

回答

1

从RewriteRule中的目标中删除引号和转义字符后,它应该可以正常工作。

RewriteCond %{HTTP_HOST} ^domain\.org$ [OR] 
RewriteCond %{HTTP_HOST} ^www\.domain\.org$ 
RewriteRule ^index\.html$ http://www.domain.org/ [R=301,L] 

RewriteCond %{HTTP_HOST} ^domain\.org$ [OR] 
RewriteCond %{HTTP_HOST} ^www\.domain\.org$ 
RewriteRule ^subfolder/$ http://www.domain.org/ [R=301,L] 

子文件夹字面单词“子文件夹”,如果你想重定向所有不存在的子文件夹,你可以尝试这样的事情下面。 \w通常与[A-Za-z0-9_]相同,我们也允许使用连字符。

RewriteCond %{HTTP_HOST} ^domain\.org$ [OR] 
RewriteCond %{HTTP_HOST} ^www\.domain\.org$ 
RewriteRule ^([\w-]+)/?$ http://www.domain.org/ [R=301,L] 
+0

实际上我打算重定向一个特定的子文件夹,而不是所有的子文件夹。 – ImpStudent

+0

@ImpStudent您是否尝试过我的答案的第一部分? –