如何解决使用htaccess摆脱/index.php链接?
我可以这样打开我的网站:
www.mysite.com
或类似这样:
www.mysite.com/index.PHP
我想创建一个将www.mysite.com/index.php重定向到www.mysite.com的htaccess规则。但是我所有的尝试都有其他副作用。我尝试过:
Redirect index.PHP home.PHP
RewriteRule ^index.PHP?$ home.PHP [NC,L]
RewriteRule ^index.PHP/?$ redirect_to_home.PHP [NC,L]
但是所有这些都弄乱了原始的index.PHP调用。因此它确实重定向了,但是普通的mysite.com链接不再起作用了。
有什么想法吗?
解决方法
请您尝试以下。
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -f
RewriteCond %{THE_REQUEST} index\.php
RewriteCond %{REQUEST_URI} ^(.*/)index\.php$
RewriteRule ^ %1 [R=301,L]
说明:
- 使
RewriteEngine On
使规则生效。 - 从
RewriteCond
到REQUEST_FILENAME
的提及条件,用于检查浏览器中是否存在提到的文件。 - 然后检查其中是否包含index.php的
THE_REQUEST
是否具有完整的请求详细信息(包括URL和GET / POST方法)。 - 现在检查
REQUEST_URI
是否在请求的网址中包含index\.php
,将之前的所有内容都保存到临时缓冲存储器中,以便以后取回其值(基本上是域名)。 - 最后在
RewriteRule
中,将index.php的完整URL重定向到仅根据要求的域名(R = 301表示浏览器端的永久重定向)。
使用此重定向规则从任何路径中删除/index.php
:
RewriteEngine On
RewriteCond %{THE_REQUEST} /index\.php [NC]
RewriteCond %{REQUEST_URI} ^(.*/)index\.php$ [NC]
RewriteRule ^ %1 [L,R=301,NE]
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。