You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

修改.htaccess实现blog.php URL去.html后缀遇重定向过多错误求助

解决.htaccess重定向过多问题

问题原因

把第16行改成RewriteRule ^(.*) blog.php?url=$1 [NC]后,^(.*)会匹配所有请求,包括转发后的blog.php本身。服务器处理请求时,会不断把blog.php再次转发到blog.php,形成无限循环,最终触发“too many redirects”错误。

解决方案

需要添加条件排除实际存在的文件和目录,同时确保规则顺序正确(让具体页面的规则优先匹配,剩下的再交给blog规则)。修改后的完整配置如下:

Options +FollowSymLinks
RewriteEngine On

# HTTP转HTTPS
RewriteCond %{SERVER_PORT} 80
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]

# 具体页面的URL重写规则(优先匹配)
RewriteRule ^index.html index.php [NC,L]
RewriteRule ^sayfa-(.*).html sayfa.php?url=$1 [NC,L]
RewriteRule ^urunler.html urunler.php [NC,L]
RewriteRule ^urun-kategori-(.*).html urun-kategori.php?url=$1 [NC,L]
RewriteRule ^urun-(.*).html urun.php?url=$1 [NC,L]
RewriteRule ^foto-galeri.html foto-galeri.php [NC,L]
RewriteRule ^galeri-(.*).html galeri.php?url=$1 [NC,L]
RewriteRule ^bloglar.html bloglar.php [NC,L]
RewriteRule ^blog-kategori-(.*).html blog-kategori.php?url=$1 [NC,L]
RewriteRule ^iletisim.html iletisim.php [NC,L]
RewriteRule ^videolar.html videolar.php [NC,L]
RewriteRule ^video-(.*).html video.php?url=$1 [NC,L]
RewriteRule ^insan-kaynaklari.html insan-kaynaklari.php [NC,L]
RewriteRule ^arama.html arama.php [NC,L]

# Blog标题URL重写规则(最后匹配,排除已存在的文件/目录)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ blog.php?url=$1 [NC,L]

关键修改说明

  1. 添加L标志:给所有具体页面的规则加上L(Last)标志,匹配到规则后就停止后续规则处理,避免和blog规则冲突。
  2. 排除文件/目录:通过RewriteCond %{REQUEST_FILENAME} !-f和RewriteCond %{REQUEST_FILENAME} !-d,确保规则只匹配不存在的文件和目录,不会把blog.php本身再次转发。
  3. 调整规则顺序:把blog规则放到所有具体页面规则之后,这样先处理其他页面的URL重写,剩下的未匹配请求才会被blog规则处理。

这样修改后,访问https://你的域名/标题就会正确转发到blog.php?url=标题,同时不会出现重定向循环问题。

内容的提问来源于stack exchange,提问作者MAMOSKO

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 23:45:41