繁体   English   中英

如果请求 URL 在 .htacess 中没有字符串,如何阻止访问

[英]How prevent access if the request URL doesn't have string in .htacess

我有一个别名域名,我不希望它加载网站。 如果请求 URL 具有特定字符串,我只希望我的别名域能够访问。

示例: www.myalias.com/pass/whatever/here

我正在查看的字符串是“pass” 如果请求 URL 在那里有“pass”,则允许访问该网站,否则返回 404 错误。

该规则将检查域名是否等于“myalias.com”,然后检查请求 URL 中是否存在字符串“pass”。

如何将其写入 .htaccess 中的规则?

听起来很简单:您检查 http 主机、pass 的存在并根据需要做出反应:

这拒绝请求

RewriteEngine on
RewriteCond %{HTTP_HOST} ^alias\.example\.com$
RewriteCond %{REQUEST_URI} !^/pass/
RewriteRule ^ - [F]

那个发送一个自定义的 http 状态(这里是 403):

RewriteEngine on
RewriteCond %{HTTP_HOST} ^alias\.example\.com$
RewriteCond %{REQUEST_URI} !^/pass/
RewriteRule ^ - [R=403]

或者您可以将客户重定向到您想要的任何地方:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^alias\.example\.com$
RewriteCond %{REQUEST_URI} !^/pass/
RewriteRule ^ https://example.com/ [R=301]

您显然需要在 http 服务器中加载重写模块。 通常,此类规则应在实际 http 服务器的主机配置中实现。 如果您真的想使用分布式配置文件(“.htaccess”),您需要先启用它的解释(请参阅AllowOverride指令的文档)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM