Как выполнить последний RewriteRule в списке Rewrite ниже, если ни один из RewriteRules не согласован? (немного похоже на правило catch)?Как выполнить последний RewriteRule, если RewriteRules над ним не совпадают?
Что у меня есть:
RewriteCond %{QUERY_STRING} referrer=as
RewriteRule ^legal/privacy$ /about/privacy [L,NC,R=301]
RewriteRule ^Disclaimer$ /about/legal [L,NC,R=301]
RewriteRule ^Privacy-Collection-Statement$ /about/privacy [L,NC,R=301]
# Catch all rule below
RewriteRule ^(.*)$ http://company.com/about [NC,R=301]
Так, если URL является:
http://company.com/blah/blah?referrer=as
было бы перенаправить (используя улов все правила):
http://company.com/about?referrer=as
Любая помощь будет оценена.
Спасибо за быстрый ответ. То, что вы говорите, имеет смысл, если я укажу следующий URL-адрес: localhost/legal/privacy? Referrer = as Я ожидаю, что первый RewriteRule начнет стрелять, однако загорается все правило. Я очистил историю кеша/просмотра и все. Если я прокомментирую правило catchall, первое правило срабатывает при использовании указанного выше URL-адреса. Возможно, какие-то идеи чего-то не хватает? –
С помощью этих правил в моем .htaccess, когда я открываю '/ legal/privacy? Referrer = as', он правильно перенаправляется на'/about/privacy? Referrer = as'. У вас есть другие правила или какой-либо .htaccess в каталоге '/ about /'? – anubhava
Также попробуйте обновить правило один раз. – anubhava