让我问你这个问题。在过去的一年中,我遇到了这个问题,直到现在我仍然无法完成。
如果我访问:
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语句重写?
预先感谢