未检查 htaccess RewriteUrl 参数

htaccess RewriteUrl parameters not checked

我需要重写url:

mydomain.com/index.php -> mydomain.com

我尝试使用:

RewriteRule ^index.php$ / [R=301,L]

问题 - 使用此 url 重写 mydomain.com/index.php? (看看最后的问号)也被重定向了。需要重写 url 只是为了与 mydomain.com/index.php 完全匹配,最后没有添加任何内容(参数等)。

补充说明:

mydomain.com/index.php?abc 不必重写

只是 mydomain.com/index.php -> mydomain.com

您可以使用 RewriteCondTHE_REQUEST:

RewriteEngine On

RewriteCond %{THE_REQUEST} \s/+index\.php\s [NC]
RewriteRule ^ / [L,R=302]

一旦您确认它工作正常,请将 R=302 替换为 R=301。在测试 mod_rewrite 规则时避免使用 R=301(永久重定向)。

THE_REQUEST 变量表示 Apache 从您的浏览器收到的原始请求,并且在执行其他重写指令后不会被覆盖。此变量的示例值为 GET /index.php?id=123 HTTP/1.1