Использование .htaccess для перенаправления с одного домена на другой - PullRequest
2 голосов
/ 21 марта 2009

Я недавно приобрел новый домен для своего сайта WordPress и хочу перенаправить всех, кто посещает, используя старый домен, на новый. Я не перемещал серверы, просто добавил новый домен.

Например, если они обратились к одному из них:

http://www.example.net/some-article/
http://example.net/some-article/

Тогда я бы хотел, чтобы они были перенаправлены на соответствующий URL:

http://www.example.com/some-article/
http://example.com/some-article/

Как бы вы сделали это простое перенаправление .net -> .com с файлом .htaccess? Любое правило должно применяться ко всем URL-адресам в домене .net.

Заранее спасибо.


Редактировать: У меня уже есть файл .htaccess на сервере:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

AddHandler php5-script .php

Ответы [ 4 ]

8 голосов
/ 21 марта 2009

Вам нужно добавить такие команды в ваш файл .htaccess:

перенаправление перманент / some-article / http://www.example.com/some-article/

Это сервер с mod_rewrite? В этом случае вы можете сделать общее перенаправление для всех путей:

RewriteEngine On

RewriteRule ^(.*)$ http://www.example.com/$1 [R=301]
3 голосов
/ 23 марта 2009

Я бы изменил ваш существующий блок перезаписи, чтобы он выглядел так:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

# New code to redirect from example.net to example.com
# Permanent redirect for caching purposes, also include the query string
RewriteCond %{HTTP_HOST} ^example\.net
RewriteRule (.*) http://example.com/$1 [R=permanent,QSA,L]

# New code to redirect from www.example.net to www.example.com
RewriteCond %{HTTP_HOST} ^www\.example\.net
RewriteRule (.*) http://www.example.com/$1 [R=permanent,QSA,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

AddHandler php5-script .php

Обратите внимание, что я на самом деле не проверял это ...

REMOTE_HOST также может работать вместо HTTP_HOST. Документация mod_rewrite рекомендует использовать HTTP_HOST, хотя это не будет работать, если браузер понимает только HTTP / 1.0

0 голосов
/ 01 августа 2014

старый домен: RewriteCond% {HTTP_HOST}! ^ Abcd.com $ [NC]

Новый домен: RewriteRule ^ (. *) $ http://abcdef.com/$1 [R = 301, L]

Бьюсь об заклад, если вы разместите это в своем старом домене и просто измените вторую строку на новое использование своего нового домена, это сработает.

0 голосов
/ 23 марта 2009

Я недавно перешел из Drupal в WordPress и потратил кучу времени, пытаясь заставить эти перенаправления работать правильно. Моим большим зависанием было выяснение, как использовать RewriteCond в сочетании с RewriteRule. Вот выдержка из статьи, которую я написал об этом:


# Rewrite drupal urls to worpress
RewriteCond %{QUERY_STRING} ^q=node/(.+)$
RewriteRule ^(.*)$ http://blog.componentoriented.com/?p=%1 [R=301,L]

# Forward RSS feed
RewriteCond %{QUERY_STRING} ^q=rss.xml$
RewriteRule ^(.*)$ http://blog.componentoriented.com/?feed=rss2 [R=301,L]
RewriteCond %{QUERY_STRING} ^q=atom/feed$
RewriteRule ^(.*)$ http://blog.componentoriented.com/?feed=rss2 [R=301,L]

Также очень полезно следить за входящими хитами и ссылками, чтобы увидеть, использует ли кто-то старую форму URL, которую вы еще не переводили. У меня была входящая ссылка, которая была закодирована как URL-адрес PostNuke (с двух платформ блогов назад!), И этот метод очень легко исправить.

Вот ссылка на мою статью, кстати: Используйте .htaccess для перенаправления с Drupal на Wordpress

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...