我需要将mydomain.com/index.php等网址重定向到mydomain.com /
这听起来很简单,但软件框架也使用像mydomain.com/index.php这样的网址?这些网址(带有单个添加的问号)不应重定向到mydomain.com。
使用
无法解决问题RewriteCond %{QUERY_STRING} ^$
RewriteRule ^(.*)$ /? [L,R=301]
因为这会替换/搜索完整的查询字符串,例如foo = bar但不是单个问号。
如何设法仅重定向index.php?我希望somone可以帮助我,因为我是mod_rewrite和正则表达式的绝对新手。
答案 0 :(得分:0)
你只需要这个:
RewriteRule ^index\.php$ ^$ [R=301,QSA,L]
注意:这是针对这种情况:浏览器中的用户键入mydomain.com/index.php
并透明地重定向到mydomain.com/
(并且在浏览器中可见)。
如果你想要相反,这应该有效:
RewriteRule ^$ /index\.php [R=301,QSA,L]
这也会进行重定向(在浏览器中,网址会从mydomain.com/index.php
更改为mydomain.com/
。
请告诉我它是否有效。
[更新]
如果您不想要/index.php?
之类的网址和有查询字符串的网址,您只需要:
# if QUERY_STRING is empty...
RewriteCond %{QUERY_STRING} ^$
# ... then try to apply the rule
RewriteRule ^index\.php$ ^$ [R=301,QSA,L]