2017-02-16 15 views
1

Я пытаюсь выполнить пакетную переадресацию с старого URL-адреса на новый. Однако я думаю, что я могу сделать что-то неправильно. Переадресация работает, но частично.Пакетные URL-адреса переадресации с использованием .htaccess

RewriteRule ^blogs/blog/.*$ https://elashsupplies.com.au/blog/$1 [L,R=301] 
RewriteRule ^blogs/blog/tagged/.*$ https://elashsupplies.com.au/blog/tag/$1 [L,R=301] 

Это перенаправляет URL-адрес, но только для/blog не для сообщения. Интересно, что я могу делать неправильно и как это исправить.

+0

Вы не захватываете '. *' В '$ 1', используя' (...) 'в шаблонах – anubhava

+1

например. используйте: 'RewriteRule^blogs/blog /(.*)$ https://elashsupplies.com.au/blog/$1 [L, R = 301]' – anubhava

+0

спасибо за ответ. Я попытался, но это все еще перенаправляет меня только на/блог. https://elashsupplies.com.au/blogs/blog/54146113-which-tweezers-are-best-for-lashing следует перейти на https://elashsupplies.com.au/blog/54146113-which-tweezers- are-best-for-lashing – Adrian

ответ

1

Перевести свой комментарий на ответ.

Проблема в том, что вы не захватываете текст из шаблона регулярных выражений в своих правилах, даже если вы используете обратную ссылку $1 в цель. Вы должны использовать:

RewriteRule ^blogs/blog/(.*)$ https://elashsupplies.com.au/blog/$1 [L,R=301,NE,NC] 

RewriteRule ^blogs/blog/tagged/(.*)$ https://elashsupplies.com.au/blog/tag/$1 [L,R=301,NC,NE] 

Также важно, чтобы эти правила перенаправления перед тем все другие правила перезаписи в вашем .htaccess. Подумайте о переносе этих правил в файл конфигурации Apache или виртуального хоста для лучшей производительности.