为什么301重定向会导致重定向到错误的网址?

时间:2014-06-22 20:36:12

标签: wordpress apache redirect url-rewriting

重新启动我们的网站后,我们必须将大多数链接重定向到大多数全新的网址路径。这导致我们在htaccess中列出301重定向,如下所示。但是出于一些奇怪的原因,一些规则重定向到与.htaccess中写入的页面不同的页面。我已经在文件中搜索了任何其他重定向到生成的URL(显然最终在404中),但它没有制定。

例如,以下301重定向最终会出现错误的网址

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

更新:

我认为它与以下设置有关:

因SEO而被删除

因为在第一行'curriculum-vitae-startpagina'被更改为新结构,它会自动重定向第二个url,然后第二次重写甚至可以找到链接。对此的解决方案是写入只有完全 url'/ curriculum-vitae-startpagina /'没有其子页面会受到此重写的影响。

有没有办法做到这一点?

1 个答案:

答案 0 :(得分:0)

经过长时间的挖掘,我自己找到了解决方案。

正如我在帖子中更新的那样,父文件夹重定向已经影响了子URL,使得子URL不再与重写规则匹配。

要确保父文件夹重写不会影响子页面/文件,请使用RedirectMatch而不是Redirect:

RedirectMatch ^/folder$ http://example.com/

这将确保仅重写文件夹本身,而不是其子页面/文件。

找到了解决此问题根源的问题here