Перенаправление .htaccess mod_rewrite между доменами - PullRequest
3 голосов
/ 20 июля 2009

У меня есть два домена, cshen.ca и cshen.net, оба указывают на одно и то же место.

Я пытаюсь сделать следующее с помощью mod_rewrite:

  • cshen.net 301 перенаправляется на cshen.ca
  • www.cshen.net или www.cshen.ca оба перенаправлены на cshen.ca
  • путь после сохранения домена после перенаправления, например, www.cshen.net / foo / bar / будет перенаправлен на cshen.ca / foo / bar /

Я испробовал множество правил, но не могу заставить его работать.

RewriteCond %{HTTP_HOST} ^cshen\.net$ [NC,OR]
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^(.*)$ http://cshen.ca/$1 [R=301,L]

Это выполняет первые два правила, но перенаправляет все обратно на домашнюю страницу и не сохраняет оставшуюся часть URL.

RewriteCond %{HTTP_HOST} ^cshen\.net$ [NC,OR]
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^/(.*)$ http://cshen.ca/$1 [R=301,L]

Небольшое изменение и добавление косой черты '/' в RewriteRule сохраняет оставшуюся часть URL, но перенаправляется только www.cshen.ca . Ни cshen.net , ни www.cshen.net нигде не перенаправляются.

Я также попробовал Руководство Apache и использовал этот код:

RewriteCond %{HTTP_HOST} !^cshen\.ca [NC]
RewriteCond %{HTTP_HOST} !^$
RewriteRule ^/(.*) http://cshen.ca/$1 [L,R]

Я думал, что это будет работать, так как он должен перенаправить любой URL, который не cshen.ca , однако, как и второй фрагмент кода, он ничего не делает для cshen.net или www.cshen.net .

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

Приложение: в случае, если это имеет значение, я использую красивые URL-адреса WordPress, и правила переписывания для этого:

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

Я пытался выставить свои правила до и после правил WordPress (когда я ставлю их раньше, я, конечно, добавлю RewriteEngine On перед моими правилами), это не имеет никакого значения.

Спасибо!

1 Ответ

0 голосов
/ 20 июля 2009

не знаю, как редактировать, решается размещением кода из apache перед WP

Должно быть, забыли проверить это раньше.

...