这令我感到沮丧,我无法找到同样的问题,也许我只是在寻找错误。有人搞砸了,我们有一堆谷歌链接到一个不存在的子文件夹。所以我试图在htaccess中进行301重定向以对其进行排序。
问题是我似乎无法让重定向工作到多个文件夹。
实施例。 http://example.com/subfolder/someOtherFolder重定向到http://example.com/someOtherFolder就好了。
但是http://example.com/subfolder/someOtherFolder/yetAnother停留在同一页面上并返回404。
这是我整个.htaccess的最后一个变体,它会返回上述结果,除了上述内容之外,我所尝试的任何内容都没有返回。
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /
RewriteRule ^sitefiles/(.*)/$ /$1 [R=301]
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php
</IfModule>
帮助? (我讨厌.htaccess&gt;。&lt;)
答案 0 :(得分:0)
问题在于这条规则:
RewriteRule ^sitefiles/(.*)/$ /$1 [R=301]
此规则要求在请求的URI
上显示一个斜杠相反:
RewriteRule ^sitefiles/(.*) /$1 [R=301]
请注意,还有一个Redirect指令可用于执行简单的重定向。在你的情况下:
Redirect /sitefiles /
最后,请注意,可以用以下内容替换整个重写块:
FallbackResource /index.php
因此,最终推荐(最佳实践)配置为:
Redirect /sitefiles /
FallbackResource /index.php
而不是完全使用Rewrite。