我正在通过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手册和谷歌似乎并不认为在重写条件下对HTTP_HOST提供NOT逻辑...或者我没有正确阅读它。
我们将非常感激地提供任何帮助。
答案 0 :(得分:1)
确定将此代码添加为/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]