Позвольте мне задать вам эту проблему. Я сталкивался с этой проблемой в прошлом году и до сих пор не могу ее решить.
Если я получу доступ:
https://www.example.com/index.htm
Я хочу переписать его на:
index.php?type=htm&page=index
А если я получу доступ:
https://example.com/index
Я хочу переписать его на:
index.php?type=default&page=index
В каждом HTTP_HOST есть страница, которая отличается от других.
Я пытался заменить %{HTTP_HOST}
на req('Host')
источник из: https://blogs.apache.org/httpd/entry/new_in_httpd_2_4, и он не работал.
RewriteEngine On
RewriteBase /
<If "%{HTTP_HOST} == 'www.example.com'">
RewriteRule ^index.htm$ index.php?type=htm&page=index [QSA]
RewriteRule ^about.htm$ index.php?type=htm&page=about [QSA]
</If>
<Else>
RewriteRule ^index$ index.php?type=default&page=index [QSA]
RewriteRule ^about$ index.php?type=default&page=about [QSA]
</Else>
В течение года я использовал это:
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^www.example.com [NC]
RewriteRule ^index.htm$ index.php?type=htm&page=index [QSA]
RewriteRule ^about.htm$ index.php?type=htm&page=about [QSA]
Но, если я получаю доступ к https://example.com/about.htm
(с или без www
), он получает доступ к index.php?type=htm&page=about
Итак, я добавил это о RewriteRule
...
RewriteCond %{HTTP_HOST} ^www.example.com [NC]
...
Моя версия apache: Apache / 2.4.39 (Win64) OpenSSL / 1.1.1b PHP / 7.3.5
Это для многих RewriteCond исправить,
У меня вопрос: как переписать с помощью оператора cond или if-else для моего примера?
Заранее спасибо