gpt4 book ai didi

apache - 使用 .htaccess 从子域提供根域内容

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

我有一个 PHP 应用程序,它需要将域的文档根目录设置为 /(wherever)/app_dir/www 才能成功运行(遗憾的是无法更改)。不幸的是,在我的主机上,我无法更改主 mydomain.com 的文档根目录(从 /public_html/public_html/app_dir/www,但我可以编辑子域的文档根目录。

子域存储在 /public_html/subdomain.domain.com 中,将子域的根设置为 /public_html/subdomain.domain.com/app_dir/www 允许应用程序在 http://subdomain.domain.com/ 处显示其内容。

为了让它的内容出现在根域中(我无法安装它,因为文档根不可编辑),我尝试使用 .htaccess 来提供来自子域的内容而不重定向浏览器,所以转到 www.domain.com 将在位置栏中显示 www.domain.com ,但实际上是在提供 subdomain.domain.com 的内容(同样使用 www.domain.com/somethingsubdomain.domain.com/something 拉取而不是)。

据我了解, mod_proxy 应该能够做到(并已安装)。基于对类似查询的其他 SO 答案,这看起来应该是解决方案:

RewriteEngine On
RewriteRule ^(www.)?domain\.com$ http://subdomain.domain.com/$1 [L,P]

我一直在用一个简单的 index.html dummy 代替任何更复杂的东西来尝试它,但是要么我的语法是关闭的(我已经尝试了几种变体,没有快乐,包括没有 P 选项;我不是专家,我的以前的 .htaccess 经验仅限于简单的重写和 301 重定向),我错过了一些非常明显的东西,或者我完全错误的树,因为我只是得到了我在根域中得到的虚拟索引文件位于子域根目录中的同样虚拟索引文件(如果您转到 subdomain.domain.com 显示就好了,但这不是目的)。

任何帮助将不胜感激!

最佳答案

这条规则是错误和错误的,它没有做你认为应该做的事情:

RewriteRule ^(www.)?domain\.com$ http://subdomain.domain.com/$1 [L,P]

记住 RewriteRule仅匹配 REQUEST_URI没有域和查询字符串部分。

如果启用了 mod_proxy,您可以改为使用此规则:
Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /

RewriteCond %{HTTP_HOST} ^www\.domain\.com$ [NC]
RewriteRule ^ http://subdomain.domain.com%{REQUEST_URI} [P,L]

如果由于某种原因没有启用 mod_proxy,请告诉我,我会建议一个替代解决方案。

关于apache - 使用 .htaccess 从子域提供根域内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18485776/

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