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

如何修改.htaccess:排除admin.php,仅将其他PHP页重定向到HTML

解决方法

以下是调整后的.htaccess配置,可同时实现非www转www、HTTP转HTTPS,且仅对index.php、product1.php、product2.php、product3.php执行PHP转HTML的重定向,排除admin.php:

# 开启URL重写引擎
RewriteEngine On

# 强制跳转到HTTPS + www域名
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^ https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

# 外部重定向:直接访问.php文件时(排除admin.php),跳转到对应的.html
RewriteCond %{REQUEST_URI} !^/admin\.php$ [NC]
RewriteCond %{THE_REQUEST} \s/+(.*?)\.php[\s?] [NC]
RewriteRule ^ /%1.html [L,R=301]

# 内部重写:访问.html文件时(排除admin.html),实际加载对应的.php
RewriteCond %{REQUEST_URI} !^/admin\.html$ [NC]
RewriteRule ^([^/]+)\.html$ $1.php [L]

关键规则说明

  • 强制HTTPS + www:通过两个RewriteCond判断是否为HTTP或非www域名,匹配后统一跳转到https://www.xxx.com,[L,R=301]表示永久重定向并终止后续规则。
  • 排除admin.php的外部跳转:第一条RewriteCond用!^/admin\.php$排除对admin.php的匹配;第二条RewriteCond匹配原始请求行(%{THE_REQUEST}),确保仅对用户直接访问.php文件的情况进行跳转,避免内部重写导致的循环问题。
  • 排除admin.html的内部重写:用!^/admin\.html$排除对admin.html的内部映射,保证访问admin.php时直接加载该文件,不会被重写或跳转。

注意事项

  1. 确保服务器开启了mod_rewrite模块;
  2. 替换原有PHP转HTML的规则,保持上述规则的顺序(跳转规则在前,内部重写在后);
  3. 测试前可清空浏览器缓存,避免旧重定向规则的影响。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 03:05:09