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

.htaccess重写规则跳转后报404 如何配置URL映射到指定PHP页面

<IfModule mod_headers.c>
  Header always append X-Frame-Options ALLOWALL
</IfModule>
<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteBase /

  # 原有HTTP转HTTPS规则保留
  RewriteCond %{HTTPS} !=on
  RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE]
  Header always set Content-Security-Policy "upgrade-insecure-requests;"

  # 规则1:旧URL 301跳转到新美化URL,避免重复收录
  RewriteCond %{QUERY_STRING} ^p=11$
  RewriteRule ^myapp\.php$ /myapp/my-technical-effort [QSD,R=301,L]

  # 规则2:新URL内部重写到实际处理脚本,用户地址栏不变
  RewriteRule ^myapp/my-technical-effort$ /myapp.php?p=11 [L]
</IfModule>

规则说明

  • 你之前只配置了旧URL跳新URL的单向规则,没有加新URL到实际脚本的内部重写逻辑,所以服务器找不到/myapp/my-technical-effort对应的实体文件,返回404错误。
  • 新增的第二条规则没有加R标记,属于服务器内部重写,用户浏览器地址栏会保持新的美化URL,不会暴露实际的PHP接口地址。
  • QSD标记会在跳转旧URL的时候丢弃原有查询参数,避免新URL后面带上?p=11。
  • 规则顺序不能调换,需要先处理旧URL跳转,再处理新URL的内部重写,否则会出现循环重定向问题。

测试注意

修改完配置后需要清空浏览器缓存再测试,之前的301永久重定向会被浏览器本地缓存,可能会影响测试结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 08:06:03