使用mod_proxy指向子文件夹

时间:2015-11-08 20:11:07

标签: .htaccess mod-rewrite redirect

我在服务器子文件夹上安装了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中的所有引用删除到子文件夹。我已经阅读了文档,但没有看到任何与此问题相关的内容。有没有人有类似的例子,或者知道一个好的方法?

1 个答案:

答案 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]