繁体   English   中英

.htaccess重写规则,用于除特定http_host之外的任何内容

[英].htaccess rewrite rule for anything except specific http_host

问题的背景:

我正在通过cPanel使用共享主机,并且在我当前的主机设置中,我无法创建其他虚拟主机。 目前为了降低成本我试图避免更多的复杂性,所以我有几个网站符号链接到public_html

 public_html /
 |
 |---> siteone.net /
 |
 |---> sitetwo.com /
 |
 |---> sitethree.net.au /
 |
 |--  (etc)

问题:

'sitetwo.com'可从siteone.net访问http://siteone.net/sitetwo.com/

瞄准解决方案:

我的目标是阻止访问其他站点的站点文件夹。 我只是模拟虚拟主机,这显然不是理想的,但我需要再做几个月。

注意:目前使用htaccess代码路由域,如下所示:

 RewriteCond %{HTTP_HOST} ^(www.)?siteone.net$
 RewriteCond %{REQUEST_URI} !^/siteone/
 RewriteCond %{REQUEST_FILENAME} !-f
 RewriteCond %{REQUEST_FILENAME} !-d
 RewriteRule ^(.*)$ /siteone/$1
 RewriteCond %{HTTP_HOST} ^(www.)?siteone.net$
 RewriteRule ^(/)?$ siteone/index.php [L]

尝试解决方案:

我的目标是将未通过siteone.com路由的任何内容重定向到404:

 RewriteCond %{HTTP_HOST} !^(www.)?siteone.net$
 RewriteCond %{REQUEST_URI} ^/siteone.net/
 RewriteRule -- serve 404 page ----- [L]

这没用。 mod_rewrite手册和google似乎并不认为在重写条件下对HTTP_HOST提供NOT逻辑...或者我没有正确读取它。

我们将非常感激地提供任何帮助。

确定在/siteone.net/.htaccess添加此代码作为第一条规则:

RewriteEngine On

RewriteCond %{HTTP_HOST} !^(www\.)?siteone\.net$ [NC]
RewriteRule ^ - [F]

(可选)如果sitetwo.com不存在.htaccess,则使用:

RewriteEngine On

RewriteCond %{HTTP_HOST} !^(www.)?sitetwo\.com$ [NC]
RewriteRule ^sitetwo\.com/ - [NC,F]

暂无
暂无

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

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