Подстановочный домен перенаправления с WordPress - PullRequest
7 голосов
/ 17 апреля 2011

У меня есть два доменных имени, настроенных с поддоменами следующим образом ...

blog.domain.com
www.blog.domain.com

blog.domain.info
www.blog.domain.info

Оба домена указывают на одно и то же местоположение на одном и том же сервере, в каталоге, содержащем WordPress.(domain.com/blog)

Чтобы Google был доволен, я хочу, чтобы все перенаправили на этот один домен ...

blog.domain.com

Вот что находится внутри файла .htaccess, содержащегося вКаталог WordPress ...

# 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

Итак, я зашел в свою cPanel и добавил перенаправление домена 301 следующим образом ...

blog.domain.info -> blog.domain.com (с необязательным "www" и выбранным подстановочным знаком).

cPanel автоматически добавляет следующее в тот же файл .htaccess в соответствии с правилами переписывания WordPress ...

RewriteCond %{HTTP_HOST} ^blog.domain.info$ [OR]
RewriteCond %{HTTP_HOST} ^www.blog.domain.info$
RewriteRule ^(.*)$ "http\:\/\/blog\.domain\.com$1" [R=301,L]

Проблема в том, что часть подстановочного знака, похоже, не работает.

Когда я перехожу на blog.domain.info , меня перенаправляют на blog.domain.com как и ожидалось.

Но когда я захожу на blog.domain.info / my-post , меня вообще не перенаправляют.

  1. Как я могу это исправить?Я пытался переписать правила, которые, как я знаю, работают, но все, о чем я могу думать, это то, что правила WordPress мешают.

  2. Как только это будет исправлено, могу ли я переместить эти переписанные моды на главную.htaccess в корне www учетной записи хостинга, отделяя их от правил WordPress? Редактировать: Ответ - НЕТ, они не будут работать, поскольку они являются доменами, припаркованными в каталогах вне корня www.

Спасибо-вы!

Ответы [ 2 ]

17 голосов
/ 18 апреля 2011

Похоже, мне просто пришлось переместить новые правила над разделом WordPress.Я также добавил новый, который должен удалить 'www' из доменного имени dot com.

Кажется, все это работает.

Любые комментарии приветствуются.

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^blog.domain.info$ [OR]
RewriteCond %{HTTP_HOST} ^www.blog.domain.info$ [OR]
RewriteCond %{HTTP_HOST} ^www.blog.domain.com$
RewriteRule ^(.*)$ "http\:\/\/blog\.domain\.com\/$1" [R=301,L]
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

РЕДАКТИРОВАТЬ

Следует отметить, что если вы измените что-либо в файле htaccess, содержащемся между этими комментариями Wordpress, это может быть перезаписано Wordpress позже.Перемещение пользовательских изменений за пределы И над этим блоком также работает и защищено от любых изменений в htaccess, внесенных самой Wordpress.

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^blog.domain.info$ [OR]
RewriteCond %{HTTP_HOST} ^www.blog.domain.info$ [OR]
RewriteCond %{HTTP_HOST} ^www.blog.domain.com$
RewriteRule ^(.*)$ "http\:\/\/blog\.domain\.com\/$1" [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
2 голосов
/ 25 октября 2012

У меня есть несколько доменов для моего сайта MethodShop, включая methodhop.com, methodhop.net и т. Д. Во время обслуживания я буду перенаправлять трафик между различными сайтами, чтобы их пользователи не прерывали работу. ниже приведен скрипт-шаблон htaccess, который я использую. он берет любой URL-адрес, к которому пытается обратиться пользователь, и отражает эту ссылку на другом домене.

например, http://methodshop.NET/games/play/bubblewrap/index.shtml

будет перенаправлять на http://methodshop.COM/games/play/bubblewrap/index.shtml

вот сценарий htaccess для methodhop.net, который переписывает все URL-адреса methodhop.net на methodhop.com. просто отредактируйте его для своего домена.

RewriteEngine on

RewriteRule (.*)$ http://www.methodshop.com\/$1 [R=301,L]

...