我在我的网站上使用一个模板。这个模板的设计方式是,所有内容都在index.php
文件中,但函数是基于查询字符串执行的,该字符串坚持到index.php
文件。
我想永久重定向到根mysite.com
时,我的网站访问index.php
没有查询字符串参数,但如果有任何查询字符串参数,那么它不应该被重定向,应该保持不变。
为了实现这一点,这是我在.htaccess
文件中添加的内容,但它会影响查询字符串,并且网站无法正确导航。
...
RewriteCond %{THE_REQUEST} ^.*/index.php
RewriteRule ^(.*)index.php$ /$1 [R=301,L]
...
谢谢你的帮助。
RewriteCond %{THE_REQUEST} ^.*/index.php RewriteRule ^(.*)index.php$ /$1 [R=301,L]
正则表达式^.*/index.php
匹配index.php
后面的任何内容,其中自然包括查询字符串。
如果在文档根目录中始终是index.php
,那么上述可以进一步简化,因为在url路径中永远不会有/index.php
之前的任何内容。
试试下面的命令:
RewriteCond %{THE_REQUEST} s/index.phps
RewriteRule ^index.php$ / [R=301,L]
注意空格。s
)在前面的CondPattern中的index.php
之后,表示URL的结束。
先测试302(临时)重定向,以避免潜在的缓存问题。您需要在测试前清除浏览器缓存,因为错误的301将被缓存。