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

s目录下.htaccess添加第三个URL参数后出现404错误求助

解决方法

问题出在缺少目录基准配置以及规则顺序不够规范,修改后的.htaccess内容如下:

Options -MultiViews
RewriteEngine On
RewriteBase /s/

# 匹配三个参数的URL
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/([^/]+)/([^/]+)$ index.php?random=$1&java=$2&u=$3 [L]

# 匹配两个参数的URL
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/([^/]+)$ index.php?random=$1&java=$2 [L]

# 匹配单个参数的URL
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)$ index.php?random=$1 [L]

关键修改说明:

  • 添加RewriteBase /s/:你的.htaccess和index.php都在s目录下,这条指令明确告诉Apache重写规则的基准路径,避免路径解析错误导致404。
  • 调整规则顺序:把匹配最长路径的规则放在最前面,这是URL重写的规范写法,确保优先匹配更具体的请求(虽然原正则不会误匹配,但能避免潜在的逻辑冲突)。
  • 添加Options -MultiViews:关闭Apache的MultiViews功能,它会自动尝试匹配类似文件名的资源,可能干扰重写规则执行,引发意外的404。

验证方式

访问https://example.com/s/15091722/yes/152030,此时应该能正确转发到index.php,你可以通过$_GET['random']、$_GET['java']、$_GET['u']获取对应的参数值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 22:50:32