2012-05-31 2 views
0

Мне нужно установить директиву в моем файле .htaccess для перенаправления следующим образом:Как перенаправить на другой домен

из http://mydomain.com/internal/

в http://myotherdomain.com/internal/

Может кто-нибудь помочь?

Благодаря

МОЙ КОД - ПРОИЗВОДИТ 500 Internal Ошибка сервера

//Rewrite to www 
Options +FollowSymLinks 
RewriteEngine on 
RewriteCond %{HTTP_HOST} ^mydomain.com/internal[nc] 
RewriteRule ^(.*)$ http://myotherdomain.com/internal/$1 [r=301,nc] 
+0

С одной стороны, комментарии в .htaccess не начинаются с '' // – geoffspear

+0

Хороший улов @Wooble - на самом деле я знаю, что они начинаются с знака фунта (#). Я получил код от онлайн-генератора и никогда не обращал внимания на эту строку. –

ответ

2

У вас было несколько проблем с файлом: Комментарии начинаются с # не //, вы не можете соответствовать URI с HTTP_HOST (вы пытаетесь соответствовать/внутренний), и должно существовать пространство между правилом или cond и флагами (NC). Это должно работать, хотя:

#Rewrite to www 
Options +FollowSymLinks 
RewriteEngine on 
RewriteCond %{HTTP_HOST} ^mydomain.com$ [NC] 
RewriteRule ^internal(.*)$ http://myotherdomain.com/internal$1 [R=301,NC] 
+0

для того, что стоит @Ansari, файл .htaccess действительно существует в самом каталоге/internal /, так как это единственный каталог в исходном домене, который я хочу перенаправить. Результаты просто дают мне список каталогов mydomain.com/internal –

+0

Получил работу @Ansari, используя эту пересмотренную строку кода 'RewriteRule^(. *) $' ... –

+0

Рад это слышать - я собирался предложить что в дополнение к 'RewriteBase/internal /'. – Ansari

1

Попробуйте это:

RewriteEngine On 
RewriteBase/
RewriteCond %{HTTP_HOST} ^mydomain.com$ [NC] 
RewriteRule ^internal(.*)$ http://myotherdomain.com/internal$1 [L,NC] 

(.*) будет копировать что-нибудь, так что вы можете использовать его в $1. Если редирект должен быть постоянным, просто добавьте R=301 после L,NC

Edit Ваших ошибок в данной части кодов:

  1. комментариев использовать «#»
  2. Хост ^mydomain.com$
  3. Необходимо разместить промежуток между хостами и [NC]
  4. RewriteRule ^(.*)$ http://myotherdomain.com/$1 OR RewriteRule ^internal/(.*)$ http://myotherdomain.com/internal/$1, но ваше правило будет перенаправлять internal/internal
+0

Это не сработает - вам нужно переписатьСообщение HTTP_HOST, прежде чем вы сможете переписать домен. – Ansari

+0

Это просто отображает список каталогов http://mydomain.com/internal/ @ChristopherBrix –

+0

Спасибо, я добавил cond – Christopher

Смежные вопросы