IIS配置:除指定路径外将某域名所有请求重定向至404
Apache Rewrite 规则配置方案
以下是针对需求的具体Rewrite规则配置,可直接用于.htaccess文件或Apache服务器的httpd.conf配置块中:
# 启用Rewrite引擎 RewriteEngine On # 对指定域名(如domain1.com)跳过所有Rewrite处理 RewriteCond %{HTTP_HOST} ^(www\.)?domain1\.com$ [NC] RewriteRule ^ - [L] # 处理www.example.com的请求规则 # 允许/allowedpath路径下的所有请求直接放行 RewriteCond %{HTTP_HOST} ^www\.example\.com$ [NC] RewriteCond %{REQUEST_URI} ^/allowedpath(/.*)?$ [NC] RewriteRule ^ - [L] # 对www.example.com的其他所有请求返回404状态码 RewriteCond %{HTTP_HOST} ^www\.example\.com$ [NC] RewriteRule ^ - [R=404,L]
规则说明:
RewriteEngine On:开启Apache的Rewrite模块,必须放在规则最开头。- 第一条规则:通过
%{HTTP_HOST}匹配目标域名,[NC]表示不区分大小写;RewriteRule ^ - [L]表示不对当前请求做任何Rewrite处理,[L]标记会终止后续规则的执行,确保该域名不受其他规则影响。 - 第二条规则:先匹配
www.example.com域名,再通过%{REQUEST_URI}匹配/allowedpath及其子路径(如/allowedpath/subpage),匹配成功后直接放行请求,不做修改。 - 第三条规则:针对
www.example.com域名下未匹配到/allowedpath的所有请求,返回404状态码,[R=404]指定返回的状态码,[L]终止后续规则。
如果是在httpd.conf中配置,也可以将规则放在对应的<VirtualHost>块内,效果一致。
内容的提问来源于stack exchange,提问作者tim
相关产品推荐
相关产品推荐

