重写一个空的查询字符串

Jus*_*ell 16 apache mod-rewrite url-rewriting

我正在建立一些缓存到我的一个网站,我似乎无法找到是否有一种方法来添加一个条件与mod_rewrite仅在请求的查询字符串为空时应用.

例如,我想知道我是否可以拥有没有查询字符串的请求

http://www.example.com/
Run Code Online (Sandbox Code Playgroud)

加载页面

http://www.example.com/index.home.html
Run Code Online (Sandbox Code Playgroud)

但任何带有查询字符串的请求,例如

http://www.example.com/?id=32
Run Code Online (Sandbox Code Playgroud)

正常加载而不受重写影响.

我错过了什么?

Jus*_*ell 34

我想到了.这似乎很好地解决了这个问题:

RewriteCond %{QUERY_STRING} ^$
RewriteRule ^/$ /index.home.html
Run Code Online (Sandbox Code Playgroud)

当然,如果有更好的方式,我很乐意听到它.


小智 5

我知道这些很旧,但更好的选择是:

RewriteCond %{QUERY_STRING} -n
RewriteRule ^/$ /index.home.html
Run Code Online (Sandbox Code Playgroud)

  • 为什么更好? (3认同)