【发布时间】:2013-12-11 14:02:52
【问题描述】:
问题背景:
我通过 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 逻辑......否则我没有正确阅读。
我们将不胜感激。
【问题讨论】:
-
/siteone.net/文件夹中是否也有 .htaccess? ` -
可能……不总是
-
没有收到您的评论,您的意思是什么?
-
您问我是否在 /siteone.net/ 中有一个 .htaccess 文件(不是真名)。所以是的 - 'siteone' 有一个 .htaccess 文件,但 sitetwo 可能没有。取决于我。据我所知,没有任何具体原因会迫使我朝任何一个方向发展……除非你有一个。
-
好的,请查看下面的答案。
标签: regex apache .htaccess mod-rewrite url-rewriting