我的 .htaccess 中有以下内容 - clean url 的声明和 https 重定向单独工作都正常,但放在一起会导致连续的重定向错误(此服务器正在以永远不会完成的方式进行重定向)。
这是我的 .htacess:
RewriteEngine on
# if a directory or a file exists, use it directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# otherwise forward it to index.php
RewriteRule . index.php
# force to use https
#RewriteCond %{HTTPS} !=on
#RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
知道如何解决这个问题吗?
谢谢
最佳答案
希望我没有迟到,因为我偶然发现了你同样的问题,并在一天前解决了冲突。
在 .htaccess
文件中写入以下内容:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php
第一条规则将自动将任何 HTTP 请求重定向到 HTTPS,并(通过关键的 [L]
标记)停止其他会弄乱页面的替换(具体来说,图像和 CSS 样式表不会被服务)。
第二个是 Yii 建议的方法来检查特定 URL 是否对应于真实的文件或目录,如果不对应,则将请求转发到 index.php
( Web应用程序)。 (那么,应用程序配置文件中的规则应该完成剩下的工作)。
关于.htaccess - 使用 YII 清除 .htaccess 中的 url 和 https 重定向冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10448693/