2015-05-29 2 views
1

Я использую приведенные ниже правила перезаписи htaccess для перенаправления старых файлов url на новые.Комбинировать RewriteRule htaccess 301 Redirect

Первый RewriteRule перенаправляет на новый файл URL-адрес, если путь к файлу Запрошенный fares/ или airfares/ или anyword-fares/ т.д.

Второй RewriteRule перенаправляет на новый файл URL только если путь URL Запрошенное flights/.

Мой первый вопрос: я написал их правильно или ничего не оставил?

Второй вопрос: могу ли я объединить два RewriteRules в один или использовать условие перезаписи, чтобы объединить их в один?

Я спрашиваю, потому что я буду добавлять больше, что будет перенаправлять на новый URL-адрес файла airfares-flights/

# For security reasons, Option followsymlinks cannot be overridden. 
#Options +FollowSymLinks 
Options +SymLinksIfOwnerMatch 
RewriteEngine On 

RewriteRule ^.*fares/(.*)$ /airfares-flights/$1 [R=301,NC,L] 
RewriteRule ^flights/(.*)$ /airfares-flights/$1 [R=301,NC,L] 

ответ

1
  1. Да ваши правила являются правильными.
  2. Да, оба правила могут быть объединены в один.

Используйте этот .htaccess:

Options +SymLinksIfOwnerMatch 
RewriteEngine On 

RewriteRule ^(?:.*fares|flights)/(.*)$ /airfares-flights/$1 [R=301,NC,L] 
+0

он работает, но я должен был удалить '' до '' *?. Теперь это выглядит так: «RewriteRule» (?:. * Тарифы | рейсы)/(. *) $/Airfares-flights/$ 1 [R = 301, NC, L] ' – Mike

+0

Да, конечно, это должно работать, отредактировано. – anubhava

+1

Благодарю вас. А если не использовать wild card, это будет выглядеть так? 'RewriteRule^(?: jobs | карьера)/(. *) $/Авиакомпания-jobs-карьера/$ 1 [R = 301, NC, L]' – Mike