为啥这个 301 重定向会导致重定向到错误的 url?
Posted
技术标签:
【中文标题】为啥这个 301 重定向会导致重定向到错误的 url?【英文标题】:Why does this 301 redirect results in redirect to wrong url?为什么这个 301 重定向会导致重定向到错误的 url? 【发布时间】:2014-08-12 21:05:09 【问题描述】:重新启动我们的网站后,我们必须将大多数链接重定向到,其中大部分是全新的 url 路径。这使我们看到了 htaccess 中的 301 重定向列表,如下所示。但由于某些奇怪的原因,一些规则重定向到与 .htaccess 中所写不同的页面。我已经在文件中搜索了指向该结果 URL 的任何其他重定向(显然,它以 404 结尾),但它没有制定。
例如,以下 301 重定向最终会出现在错误的 url
Removed due to SEO
这最终会在:由于 SEO 而被删除
在完整的 .htaccess 下方:
Removed due to SEO
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %REQUEST_FILENAME !-f
RewriteCond %REQUEST_FILENAME !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
更新:
我认为这与以下设置有关:
由于搜索引擎优化而被删除
因为在第一行中'curriculum-vitae-startpagina'被更改为新结构,它在第二次重写甚至可以找到链接之前自动重定向第二个url。对此的解决方案是编写只有 exact url '/curriculum-vitae-startpagina/' 没有其子页面会受到此重写的影响。
有什么办法吗?
【问题讨论】:
我已经尝试在 phpmyadmin 中进行查找和替换,但也没有运气 【参考方案1】:经过长时间的挖掘,我自己找到了解决方案。
正如我已经在我的帖子中更新的那样,父文件夹重定向已经影响了子 URL,使子 URL 不再匹配重写规则。
为确保父文件夹重写不会影响子页面/文件,请使用 RedirectMatch 而不是 Redirect:
RedirectMatch ^/folder$ http://example.com/
这将确保仅重写文件夹本身,而不是其子页面/文件。
这个问题的根源找到了here
【讨论】:
以上是关于为啥这个 301 重定向会导致重定向到错误的 url?的主要内容,如果未能解决你的问题,请参考以下文章