【发布时间】:2026-01-05 19:05:01
【问题描述】:
我的.htaccess 文件中有以下内容
- 删除 www
- 重定向到 https
- 删除.php
这是我的 .htaccess:
# ----------------------------------------------------------------------
# | Redirect to HTTPS & remove www |
# ----------------------------------------------------------------------
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^www\. [NC]
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC]
RewriteRule ^ https://%1%{REQUEST_URI} [L,NE,R=301]
# ----------------------------------------------------------------------
# | Remove .php extension |
# ----------------------------------------------------------------------
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}/$1.php -f
RewriteRule ^(.+?)/?$ /$1.php [L]
当我在 Firefox 中查看该网站时,我收到以下错误:
页面未正确重定向。 此问题有时可能是由禁用或拒绝接受 cookie 引起的
Chrome 会警告重定向过多
URL 已更新为我所期望的(删除了 www 并添加了 https)。没有其他有效的重定向
谁能发现我哪里出错了?
【问题讨论】:
-
我看不到任何会导致重定向循环的东西。一定有冲突,比如其他规则?您能说出重定向循环生成的网址吗?这将有助于调试它
-
嗨 Justin - 生成的 url 是正确的,并且没有其他重定向规则。我已更新问题以包含此信息
-
其实,你看到的不是你得到的,证明是重定向循环。你能看看 Chrome 的网络控制台看看有什么问题吗?这样,我们将看到什么是重定向循环,并且我们可以确定问题的根源。您有一个配置为仅接受
http或www(或两者)的 CMS(是吗?)的可能性很高,这将解释重定向循环。 -
您的 Apache 版本是多少?尝试替换
RewriteCond %{HTTPS} off [OR]wiithRewriteCond %{REQUEST_SCHEME} =http
标签: .htaccess