如何通过.htaccess将page-url后任意路径重定向至404?规则调试求助
解决.htaccess中/page-url/路径下所有请求返回404的问题
嘿,我来帮你搞定这个.htaccess的问题!你之前的规则没生效,核心问题是正则表达式的语法错了——(*)不是有效的正则匹配符,咱们来修正它。
正确的规则写法
首先确保你的.htaccess文件开启了重写引擎,然后添加下面的规则:
RewriteEngine On RewriteRule ^page-url/.*$ - [R=404,L]
规则解释
让我拆解一下每个部分的作用:
RewriteEngine On:必须开启这个才能让重写规则生效,很多人漏加这一行导致规则无效,千万别忘!^page-url/.*$:这是正则匹配规则:^表示匹配URL路径的起始位置page-url/是我们要锁定的固定前缀.*匹配任意数量的任意字符(包括0个),所以会覆盖/page-url/本身、/page-url/abc、/page-url/abc/def等所有以/page-url/开头的请求
-:表示不需要重定向到具体URL,只需要返回指定的状态码R=404:告诉服务器返回404 Not Found状态码L:表示这是最后一条规则,匹配后就停止处理后续的重写规则
可选:只匹配/page-url/后有内容的请求
如果你只想让/page-url/之后有内容的请求返回404(比如/page-url/本身正常访问),只需要把正则改成.+(匹配至少一个字符):
RewriteRule ^page-url/.+$ - [R=404,L]
额外注意事项
- 确保你的.htaccess文件放在网站的根目录下
- 检查服务器是否允许使用.htaccess(主机商一般默认开启,要是不确定可以联系他们确认,或者查看httpd.conf里的
AllowOverride All配置) - 测试前清一下浏览器缓存,避免之前的错误规则残留影响结果
- 如果有自定义404页面,可以加上
ErrorDocument 404 /your-custom-404.html(替换成你实际的页面路径),这样返回404时会显示你的自定义页面
内容的提问来源于stack exchange,提问作者Mark C. Reid
相关产品推荐
相关产品推荐

