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

如何通过.htaccess修改URL路径?请求解决重写失效问题

解决.htaccess URL重写失效问题

你的重写规则不生效主要有几个关键问题,咱们一步步来修复:

问题分析

  1. 规则顺序错误:你的第一条重写规则(自动给请求追加.php后缀)会先匹配到/product/product_2,尝试查找product/product_2.php这个不存在的文件,但因为规则顺序的问题,第二条特定规则根本没机会被触发。
  2. RewriteCond语法错误:%{REQUEST_FILENAME}!-d这里缺少了空格,正确写法应该是%{REQUEST_FILENAME} !-d,空格是分隔变量和判断条件的必要部分,缺少它会导致条件判断完全失效。
  3. 缺少终止标志:第二条规则没有添加L标志,即使匹配成功,服务器可能还会继续执行后续规则,引发预期外的行为。

修正后的.htaccess配置

调整规则顺序、修正语法错误并添加必要标志后,最终配置如下:

Options +FollowSymLinks
RewriteEngine on

# 优先匹配特定的product/product_2规则
RewriteRule ^product/product_2$ product_2.php [L]

# 再处理通用的.php后缀隐藏规则
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php [L]

关键说明

  • 规则顺序:特定URL规则一定要放在通用规则前面,这样能优先匹配目标请求,避免被通用规则拦截。
  • L标志:[L]代表Last,意思是匹配到这条规则后就停止处理后续规则,确保重写一次到位。
  • 语法细节:RewriteCond里的空格必须保留,否则服务器无法正确解析判断条件。

另外请确认你的Apache服务器已经开启了mod_rewrite模块,并且网站根目录的配置允许使用.htaccess文件(在httpd.conf中设置AllowOverride All)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 07:04:34