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

将带.php/.html后缀及带斜杠的页面重定向到无后缀WWW版本

解决方案:统一URL格式并移除PHP后缀,同时保留静态文件访问

我来帮你完善.htaccess配置,完美实现你想要的所有需求——既把各种非标准URL(带.php后缀、带尾部斜杠、不带www、HTTP协议)统一重定向到https://www.bm-translations.de/test这种标准格式,又不会影响图片、PDF这类静态文件的正常访问。

下面是完整的配置代码,你可以直接替换现有内容:

RewriteEngine On
RewriteBase /

# 1. 强制跳转到HTTPS + www前缀,一步到位避免多次重定向
RewriteCond %{SERVER_PORT} 80 [OR]
RewriteCond %{HTTP_HOST} !^www\.bm-translations\.de$
RewriteRule ^(.*)$ https://www.bm-translations.de/$1 [L,R=301]

# 2. 放行真实存在的静态文件(图片、PDF、CSS等),不执行后续重定向
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^ - [L]

# 3. 将带.php后缀的URL重定向到无后缀版本
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+(.+?)\.php[\s?] [NC]
RewriteRule ^ /%1 [R=301,L]

# 4. 将带尾部斜杠的URL重定向到无斜杠版本(真实目录除外)
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /$1 [R=301,L]

# 5. 内部重写:无后缀URL实际映射到对应的.php文件(用户无感知)
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*)$ $1.php [L]

各部分规则详解:

  • 强制HTTPS+www:把原来的HTTPS规则和强制www合并,不管用户用HTTP访问,还是直接访问bm-translations.de(不带www),都会直接跳转到标准的https://www.bm-translations.de/xxx,减少不必要的重定向次数。
  • 放行静态文件:这是核心的例外规则——如果请求的是服务器上真实存在的文件(比如logo.png、manual.pdf),直接跳过后面的所有重定向规则,保证这些文件能正常访问,不会被错误地移除后缀。
  • 移除.php后缀重定向:通过匹配原始请求头(比如GET /test.php HTTP/1.1),提取出test部分并跳转到/test,让所有带.php的旧URL都指向标准无后缀版本。
  • 移除尾部斜杠:只针对非真实目录的URL生效(避免影响真实文件夹的访问),把domain.de/test/这类带斜杠的URL统一跳转到domain.de/test。
  • 内部重写:这是后台隐形操作,当用户访问/test时,服务器会自动去加载对应的/test.php文件,用户完全看不到这个过程,实现了无后缀访问的效果。

注意事项:

  • 确保你的Apache服务器已经启用了mod_rewrite模块
  • 测试阶段可以把R=301改成R=302(临时重定向),确认所有跳转都符合预期后,再改回301(永久重定向,利于搜索引擎收录)
  • 如果有需要保留尾部斜杠的真实目录,可以在“移除尾部斜杠”的规则前添加例外条件

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 03:53:22