IF-Else条件重写规则

时间:2019-06-02 08:04:09

标签: apache apache2.4

让我问你这个问题。在过去的一年中,我遇到了这个问题,直到现在我仍然无法完成。

如果我访问:

https://www.example.com/index.htm

我想将其重写为:

index.php?type=htm&page=index

如果我访问:

https://example.com/index

我想将其重写为:

index.php?type=default&page=index

在每个HTTP_HOST中,它都有一个与其他页面不同的页面。

我尝试将https://blogs.apache.org/httpd/entry/new_in_httpd_2_4%{HTTP_HOST}替换为req('Host')的源,但没有用。

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语句重写?

预先感谢

0 个答案:

没有答案