2016-06-27 7 views
1

Мне нужно сделать скрытую переадресацию с sitename.dom в sitename.dom2, оставив остальную строку нетронутой.Как сделать rewritecond только для точного url

Сейчас я использую:

RewriteCond %{HTTP_HOST} ^sitename.dom 
RewriteRule ^(.*) http://sitename.dom2/$1 [P] 

и она прекрасно работает. Но. Благодаря MULtilanguage на моем веб-сайте Frontpage имеет следующий путь:

sitename.dom2/lang 

вот почему, когда пользователь звонит sitename.dom он перенаправляется (скрытый) в sitename.dom2/ и он получает 404 страниц.

Итак, пожалуйста, сообщите, как мне сделать строгую переадресацию только для точного запроса sitename.dom без каких-либо дальнейших действий?

Я попытался

RewriteCond %{HTTP_HOST} ^sitename\.dom$ 
RewriteCond %{QUERY_STRING} ^$ 
RewriteRule ^(.*) http://sitename.dom2\/lang [P] 

не повезло.

BTW, внутри субпакета языка веб-сайта вообще не влияет. sitename.dom/lang/page работает так хорошо, как sitename.dom/page

ответ

0

мне пришлось добавить единичную переадресацию, прежде чем все остальные. И используйте dom2 вместо dom1 в этом правиле.

Вот решение:

RewriteEngine On 

#redirect front page only: 
RewriteCond %{HTTP_HOST} ^sitename\.dom2$ [OR] 
RewriteCond %{HTTP_HOST} ^www\.sitename\.dom2$ 
RewriteRule ^/?$ "http\:\/\/sitename\.dom2/\lang" [L] 

#redirect all other pages: 
RewriteCond %{HTTP_HOST} ^sitename\.dom2 
RewriteRule ^(.*) http://sitename\.dom1\/$1 [P] 
0

Просто добавьте /lang в первый RewriteRule директивы:

RewriteEngine On 
RewriteCond %{HTTP_HOST} ^sitename.dom$ 
RewriteRule^http://sitename.dom2/lang%{REQUEST_URI} [P] 
+0

Спасибо, но это не сработало. Наверное, я раньше пробовал что-то подобное. Теперь я получаю 404 как на citename.dom, так и citename.dom/lang. Не удается попасть на главную страницу – Andriy

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

  • Нет связанных вопросов^_^