1

我正在尝试使用 .htaccess 文件和以下代码删除主站点上的尾随 index.php....

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /(([^/]+/)*)index\.(html?|php[45]?|[aj]spx?)\ HTTPS/
RewriteRule index\.(html?|php[45]?|[aj]spx?)$ https://www.gekkodev.com/%1 [R=301,L]

但是当然它仍然不起作用!我认为问题在于我的 ssl 证书,因为该代码在许多其他网站上运行良好

任何想法都会被极大地接受!非常感谢。

  • 菲利普
4

2 回答 2

3

RewriteCond采取了完全错误的方法。HTTPS 请求只是包装在 SSL/TLS 安全性中的 HTTP 请求 - 它不会包含请求行中的字符串HTTPS,这是您要检查的内容。

如果您希望规则仅适用于 HTTPS 请求,只需使用文档中列出的%{HTTPS}变量:

RewriteCond %{HTTPS} on

(我最近看到很多重写规则测试%{THE_REQUEST},我不知道为什么,因为它真的应该只在没有其他方法可以工作的情况下作为最后的手段。)

于 2013-05-06T01:30:25.950 回答
0

排序这就是我所做的!

RewriteEngine on
RewriteCond %{HTTPS} on
RewriteRule index\.(html?|php[45]?|[aj]spx?)$ https://www.gekkodev.com/%1 [R=301,L]

干杯 IMSoP

于 2013-05-06T14:50:48.640 回答