未检查 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
您可以使用 RewriteCond
和 THE_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
我需要重写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
您可以使用 RewriteCond
和 THE_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