1

我已经研究了大约 6 个小时(如果我知道我会花这么长时间我会从头到尾阅读手册以深入学习)并且出于绝望我终于问.

我有一个有两个 Wordpress 网站的客户。

www.myoldsite.com 和 www.mynewsite.com。

www.myoldsite.com 托管在我可以访问 www.mynewsite.com 时无法访问的服务器上。

由于这种限制,我决定使用 www.mynewsite.com 上的 .htaccess 文件来处理特定的 301 重定向并将域 www.myoldsite.com 指向 www.mynewsite。大多数重定向都可以正常工作,但也有一些没有。我知道为什么,但我不知道如何解决它。

For example:
On the www.myoldsite.com they had the page www.myoldsite.com/about-us. 
On the new site the new URL is www.mynewsite.com/about-us/what-we-do.

htaccess 文件如下所示:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^mynewsite\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.mynewsite\.com$
RewriteRule /about-us "http\:\/\/mynewsite\.com\/about\-us\/what\-we\-do\/" [R=301,L]

# 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

目前,这会导致递归错误“重定向过多”。如果我将重写规则更改为:

RewriteRule ^/about-us$ "http\:\/\/mynewsite\.com\/about\-us\/what\-we\-do\/" [R=301,L]

URL www.myoldsite.com/about-us 返回 404 /index.php not found。我可以说这是来自 Wordpress。

我只需要 www.myoldsite.com/about-us 使用重定向指向 www.mynewsite.com/about-us/what-we-do。如果有人可以提供帮助,那将是最有帮助的。

谢谢。

4

1 回答 1

1

RewriteRule的太长了。我刚刚成功地做了以下事情,没有大惊小怪:

RewriteRule ^about-us(/?)$ https://www.google.com/about/ [R=301,L]

我认为您的规则开头的正斜杠about-us引起了问题。

此外,我不能 100% 确定浏览器是否缓存这些重定向,但我过去在 Firefox 和 301 重定向方面遇到了一些麻烦,在更改后,Firefox 的行为继续与更改前一样并打开新浏览器(Safari ) 工作。你可能会检查一下。

于 2013-05-01T04:43:07.960 回答