2016-02-18 4 views
0

В обновлении моего сайта, я пытаюсь перенаправить поддомен к статическому WordPress странице Недавно я сделал: stories.amcorbin.com -> amcorbin.com/stories.htaccess перенаправления поддомена, с исключениями

Однако , У меня есть конкретные страницы на этом субдомене, уже связанные в другом месте и вне моего контроля, что я не хочу приводить к поломке ссылок. Пример: stories.amcorbin.com/baseofthecomet.html

Мне удалось получить htaccess для перенаправления субдомена, но я не могу заставить его применять условия исключения. Вот где я:

RewriteEngine on 
RewriteCond %{REQUEST_URI} !^/images/ [NC] 
RewriteCond %{REQUEST_URI} !^/baseofthecomet.html [NC] 
RewriteCond %{REQUEST_URI} !^/digital-witnesses.html [NC] 
RewriteCond %{REQUEST_URI} !^/inheritance.html [NC] 
RewriteCond %{REQUEST_URI} !^/intelpost.html [NC] 
RewriteCond %{REQUEST_URI} !^/silver.html [NC] 
RewriteCond %{REQUEST_URI} !^/silverandgold.html [NC] 
RewriteCond %{REQUEST_URI} !^/the-fairy-woods.html [NC] 
RewriteRule ^(.*)$ http://www.amcorbin.com/stories$1 [L,R=301] 

Redirect 301 stories.amcorbin.com http://amcorbin.com/stories/ 

Я сделал некоторые возился с RegEx, но я довольно шатким по этому вопросу. Я также подумал, о, я просто переведу или скопирую все страницы, которые хочу сохранить ... кроме того, что у него есть свои проблемы.

Как полный новичок to htaccess, я удивлен, что мне удалось добраться настолько, насколько я есть, но я нахожусь в своем остроумие. Может ли кто-нибудь помочь мне преодолеть это последнее препятствие?

ответ

1

Вам не нужно использовать Redirect 301, достаточно RewriteRule с R = 301.

Я вижу, что вы используете ^/в своем htaccess,% {REQUEST_URI} не включает/в начале этой строки.

Поэтому, пожалуйста, попробуйте:

RewriteEngine on 
RewriteCond %{REQUEST_URI} !^/images/ [NC] 
RewriteCond %{REQUEST_URI} !^/baseofthecomet.html [NC] 
RewriteCond %{REQUEST_URI} !^/digital-witnesses.html [NC] 
RewriteCond %{REQUEST_URI} !^/inheritance.html [NC] 
RewriteCond %{REQUEST_URI} !^/intelpost.html [NC] 
RewriteCond %{REQUEST_URI} !^/silver.html [NC] 
RewriteCond %{REQUEST_URI} !^/silverandgold.html [NC] 
RewriteCond %{REQUEST_URI} !^/the-fairy-woods.html [NC] 
RewriteRule ^(.*)$ http://www.amcorbin.com/stories/$1 [L,R=301] 

Спасибо.

+0

В httpd.conf у REQUEST_URI есть ведущий /. Но в htaccess он не содержит ведущего /. –

+0

Да, вы правы, но это необходимо в ** RewriteCond ** в обоих контекстах. – starkeen

+1

Вы правы, в RewriteCond он начинается с ведущего /. Я отредактировал ответ. Вы должны добавить косую черту перед $ 1. Браузеры помнят старые 301 правила, поэтому я думаю, вы должны проверить его в приватном окне или удалить весь кеш и историю, прежде чем повторять попытку. –

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