gpt4 book ai didi

regex - .htaccess 重写除特定 http_host 之外的任何内容的规则

转载 作者:行者123 更新时间:2023-12-02 01:55:45 25 4
gpt4 key购买 nike

问题的背景:

我正在通过 cPanel 使用共享主机,而在我当前的主机设置中,我无法创建额外的虚拟主机。目前为了降低成本,我试图避免更多的复杂性,所以我有几个网站符号链接(symbolic link)到 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 手册和谷歌似乎不认为在重写条件下 NOT 逻辑可用于 HTTP_HOST ......否则我没有正确阅读它。

如有任何帮助,我们将不胜感激。

最佳答案

确定将此代码添加为 /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]

关于regex - .htaccess 重写除特定 http_host 之外的任何内容的规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20216895/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com