Ответ 1
Я понял это. Это похоже на трюк довольно хорошо:
RewriteCond %{QUERY_STRING} ^$
RewriteRule ^/$ /index.home.html
Конечно, если есть лучший способ, я бы хотел его услышать.
Я создаю некоторое кэширование на одном из моих сайтов, и я не могу найти, есть ли способ добавить условие с mod_rewrite для применения, только если строка запроса в запросе пуста.
Например, мне бы хотелось знать, могу ли я иметь запрос без строки запроса, например
http://www.example.com/
загрузите страницу в
http://www.example.com/index.home.html
Но любой запрос с строкой запроса, например
http://www.example.com/?id=32
чтобы нормально загружаться и не подвергаться воздействию перезаписи.
Что мне не хватает?
Я понял это. Это похоже на трюк довольно хорошо:
RewriteCond %{QUERY_STRING} ^$
RewriteRule ^/$ /index.home.html
Конечно, если есть лучший способ, я бы хотел его услышать.
Я знаю, что это довольно старые, но лучше альтернатива:
RewriteCond %{QUERY_STRING} -n
RewriteRule ^/$ /index.home.html
Чтобы сопоставить с пустой QueryString, мы используем ^ $ в нашем шаблоне условий. Следующее правило перенаправляет /file.html на /file2.html, но не может перенаправить /file.html?querystring из-за условия.
RewriteEngine on
RewriteCond %{QUERY_STRING} ^$
RewriteRule ^/?file.html$ /file2.html? [L,R]
Незначительный знак вопроса в конце правила важен, поскольку он отбрасывает старую строку запроса, иначе перенаправленный URL-адрес будет выглядеть как /file2.html?querystring.