.htaccess перенаправляет для www и не www для всего сайта и отдельных страниц, кажется, сбой - PullRequest
0 голосов
/ 13 декабря 2011

Попытка перенаправить весь трафик с www.old-domain.co.uk и old-domain.co.uk на www.new-domain.co.uk при установке Wordpress, но также необходимо перенаправить некоторые конкретные страницы на новыеURLS.У меня есть:

# 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

Options +FollowSymLinks 

RewriteCond %{HTTP_HOST} ^(www\.)?old-domain.co.uk$ [NC]
RewriteRule ^(.*)$ http://www.new-domain.com/$1 [R=301,L]

redirect 301 /xxx/4533644418 http://www.new-domain.com/xxx/
redirect 301 /yyy/4533644413 http://www.new-domain.com/yyy/
redirect 301 /zzz/4533681089 http://www.new-domain.com/zzz/

Кажется, это работает, но проблема в том, что если я ввожу URL-адрес корзины - например, old-domain.co.uk/trash.html - это 404, но в адресной строке по-прежнему отображаетсястарый домен (old-domain.co.uk/trash.html) вместо перенаправления, как я ожидаю (www.new-domain.com/trash.html).

Я беспокоюсь, что это может указывать наошибка в моем подходе перенаправления и буду признателен за любой совет.Большое спасибо.

1 Ответ

1 голос
/ 13 декабря 2011

URL-адрес корзины соответствует разделу Wordpress и никогда не достигает вашего правила для перенаправления на новый сайт. Переместите правило перенаправления вверх, как показано ниже

<IfModule mod_rewrite.c>
Options +FollowSymLinks 
RewriteEngine On
RewriteBase /

#Most specific Rules should be at the top
redirect 301 /xxx/4533644418 http://www.new-domain.com/xxx/
redirect 301 /yyy/4533644413 http://www.new-domain.com/yyy/
redirect 301 /zzz/4533681089 http://www.new-domain.com/zzz/

RewriteCond %{HTTP_HOST} ^(www\.)?old-domain.co.uk$ [NC]
RewriteRule ^(.*)$ http://www.new-domain.com/$1 [R=301,L]

# BEGIN WordPress
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress
</IfModule>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...