我在服务器子文件夹上安装了Perch CMS(这是批量托管帐户的主域名,因此无法避免使用子文件夹)。
我正在使用:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www.)?MYSITE.com$
RewriteCond %{REQUEST_URI} !^/SUBFOLDER/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /SUBFOLDER/$1
RewriteRule ^(/)?$ SUBFOLDER/index.php [L]
我在CMS中设置配置路径以包含/ SUBFOLDER /。一切都很好。
然后我发现CMS在许多功能中使用DOCUMENT_ROOT(并且它不像找到所有功能并添加子文件夹那么简单),主要用于创建页面。这意味着新的页面文件存储在服务器根目录中,而不是子文件夹中。
Perch支持建议使用mod_proxy指向子域并将PHP中的所有引用删除到子文件夹。我已经阅读了文档,但没有看到任何与此问题相关的内容。有没有人有类似的例子,或者知道一个好的方法?
答案 0 :(得分:0)
我认为支持所指的是代理子域而不是重写到子域的子文件夹。因此,请确保将/Subfolder
正确设置为子域,然后您可以使用P
标志执行此类操作以代理子域。
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www\.)?MYSITE\.com$
RewriteCond %{REQUEST_URI} !^/SUBFOLDER/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ http://subfolder.example.com/$1 [P]
ProxyPassReverse "/" "http://subfolder.example.com/"
RewriteRule ^(/)?$ http://subfolder.example.com/index.php [P]