Htaccess: перенаправление некоторых страниц из одного домена в другой

#php #.htaccess #redirect

#php #.htaccess #перенаправление

Вопрос:

Мне нужно перенаправить некоторые страницы из одного домена в другой. Пример: example.com/help/questions(/show/some_text|none|get params) для example2.com/questions(/show/some_text|none|get params)

htaccess:

 Redirect permanent /help/questions    http://example2.com/questions
  

Но перенаправление с example.com/help/questions/show/some_text не работает — example2.com/help/questions/show/some_text вместо этого у меня есть example2.com/questions/show/some_text
С таким кодом у меня есть некоторые проблемы.

 RewriteCond %{HTTP_HOST} example.com/help/questions
RewriteRule (.*) http://example2.com/questions/$1 [R=301,L]
  

Как я могу это исправить?
Все остальные страницы перенаправляются нормально.

Ответ №1:

%{HTTP_HOST} соответствует только имени хоста, а не URI.

Вы можете использовать:

 RewriteEngine On

RewriteCond %{HTTP_HOST} ^(?:www.)?example.com$ [NC]
RewriteRule ^help/(questions/.*) http://example2.com/$1 [R=301,L,NC,NE]
  

Комментарии:

1. У меня все еще есть такая проблема: но перенаправление с example.com/help/questions/show/some_text не работает — example2.com/help/questions/show/some_text вместо этого у меня есть example2.com/questions/show/some_text . help не требуется

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

Ответ №2:

  1. Убедитесь, что вы установили «AllowOverride All» в httpd.conf или apache.conf.
  2. Убедитесь, что у вас включены модули apache rewrite_module, headers_module и alias_module.