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