在SO中尝试了很多示例,但似乎没有任何效果。我考虑设立:将子域重定向到包含CakePHP应用程序的main文件夹中
/public_html/
/app/
/cgi-bin/
/lib/
/plugins/
/revamp/
/vendors/
我现在有一个CakePHP的网站site.com
有/app/
文件夹下它的文件,我现在使用权的.htaccess看起来是这样的:
<IfModule mod_rewrite.c>
RewriteEngine on
ReWriteRule ^$ app/webroot/ [L]
ReWriteRule (.*) app/webroot/$1 [L]
</IfModule>
我想重定向子域revamp.site.com
到文件夹/revamp/
这将是另一个cakephp网站。
更新1:
被要求创建一个虚拟主机和我一样,它被设置为子域文件夹,帮助我要的是一个htaccess的规则,两个工作,一个在上面,也重定向到子域如果请求的地址有域之前,它的子域...
更新2:
以下.htaccess
让我到我的子域,但只能中的index.html
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_HOST} ^site\.com$
RewriteRule (.*) app/webroot/$1 [L]
RewriteCond %{HTTP_HOST} ^revamp\.site\.com$
RewriteRule (.*) revamp/index.html [L]
</IfModule>
它是两个答案的混合...尽管无论我将哪个路径放在子域中,它只会让我到index.html(因为它在htaccess中是硬编码的)。也试过revamp/$
和revamp/$1
没有运气。
更新3:
试图与第一个答案的编辑:
<IfModule mod_rewrite.c>
RewriteEngine on
#subdomain simple site
RewriteCond %{HTTP_HOST} ^subdomain\.test\.com$
RewriteCond %{REQUEST_URI} !^/subdomain
RewriteRule ^(.*)$ subdomain/$1 [L]
#cakephp site
RewriteRule ^$ app/webroot/ [L]
RewriteRule (.*) app/webroot/$1 [L]
</IfModule>
仍给500,我也试过两个块的开关位置
更新4:
WORKING解决方案,在/public_html/app
和/public_html/revamp/app
之间都有cakephp网站
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_HOST} ^revamp\.site\.com$
RewriteRule ^(.*)$ revamp/app/webroot/$1 [NC,L]
RewriteRule ^$ app/webroot/ [L]
RewriteRule (.*) app/webroot/$1 [NC,L]
</IfModule>
您使用的共享主机? –
设置另一个VirtualHost进行修改并将DocumentRoot设置为/修复 – user2182349
@DavidAguilar我正在使用VPS yes – nullwriter