我需要访问位于我网域子文件夹中的网站。
挑战 - 由于我的托管结构,所有网站都位于子域文件夹中的主域服务器上。域将映射到每个站点的那些文件夹。但是,主域映射到服务器根,如下所示 -
•/ www /(www.masterdomain.com的根)
/文件夹1 /(www.site1.com的根目录)
/文件夹2 /(www.site2.com的根目录)
/文件夹3 /(www.site3.com的根目录)
/文件夹4 /(主域的所需根目录)
如果我在文件夹4中安装我的CMS一切都很好,但CMS代码在服务器根目录中创建新资产(我认为使用DOCUMENT_ROOT),而不是在子文件夹中。
尝试修复1:
使用重写删除子文件夹并将所有路径设置为包含子文件夹。 失败 - CMS按需要运行,但资产仍在根目录中创建。
尝试修复2:
将子域映射到该文件夹并重写URL以删除子域。 失败:CMS在子域上工作并在子文件夹中创建资产(win!),但无法重写子域。
尝试修复3:
将子域映射到该文件夹,并使用主域中的代理标志来隐藏加载内容。
进步!主页面显示正确的URL,但链接的文件和子文件夹不起作用。
所以我现在可以通过以下方式访问我的网络应用: app.exampledomain.com(应用程序在所有方面都完美运行) 要么 exampledomain.com(代理实际上,所有子文件夹和链接都已损坏)
这是我的htaccess:
Options +FollowSymLinks
RewriteEngine On
RewriteBase /
# Proxy subfolders
RewriteRule ^exampledomain.com/(.+?)?$ http://app.exampledomain.com/$1 [P,L,NC]
# Proxy main
RewriteRule ^(exampledomain.com)?$ http://app.exampledomain.com/ [P,L,NC]
那么为什么我的子文件夹/资产不起作用? .htaccess有问题吗?错误的逻辑?
重要说明 - 子文件夹页面称为index.php,因此可以从 - /夹/ 页面上的断开链接采用以下格式 - JS / foundation.min.js
感谢。
答案 0 :(得分:0)
RewriteRule对域名一无所知,只适用于本地路径。
相反,请检查RewriteCond中的域名:
RewriteCond %{HTTP_HOST} ^(www\.)*exampledomain\.com$ [NC]
RewriteRule (.*) http://httpd.apache.org/$1 [P,L]
但是在这里使用mod_alias或VirtualHost是一个更正确的决定。