IF-Else Условие переписать правило - PullRequest
0 голосов
/ 02 июня 2019

Позвольте мне задать вам эту проблему. Я сталкивался с этой проблемой в прошлом году и до сих пор не могу ее решить.

Если я получу доступ:

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 для моего примера?

Заранее спасибо

...