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

如何解决Pretty URL的404错误及.htaccess规则冲突问题

解决.htaccess规则冲突导致的404问题

问题核心是规则执行顺序错误:通用的移除.php扩展名规则会优先匹配/create/xxx这类URL,服务器会尝试寻找不存在的/create/xxx.php文件,最终返回404。

正确的.htaccess配置

RewriteEngine On
RewriteBase /

# 优先处理create的伪静态规则
RewriteRule ^create/([^/]+)$ create.php?id=$1 [NC,L]

# 通用的移除.php扩展名规则
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php [NC,L]

关键说明

  1. 规则顺序:特定伪静态规则必须放在通用规则前面。服务器从上到下执行规则,让/create/xxx先匹配到对应重写逻辑,直接映射到create.php?id=xxx,不会触发后面的通用规则。
  2. 参数修正:把原规则中的app=$1改为id=$1,和你需求中的id参数保持一致。
  3. 可选:旧URL重定向:如果需要让访问旧URL(create.php?id=xxx)的用户自动跳转到新伪静态URL,可添加以下永久重定向规则:
# 旧URL永久重定向到新伪静态URL
RewriteCond %{QUERY_STRING} ^id=([^&]+)$
RewriteRule ^create\.php$ create/%1? [R=301,L]

验证要点

  • 确认create.php文件存在于网站根目录
  • 测试访问https://myurl.com/create/37744e17-98ff-58a9-8996-7cf746e508b9,检查是否正确传递id参数到create.php

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 05:20:29