【发布时间】:2015-07-12 04:27:25
【问题描述】:
我在其他应用程序的 htaccess 文件中使用以下规则将用户从文件夹重定向到子域,但在访问该子域时从该文件夹加载内容。
# REWRITE SUBDOMAIN TO FOLDER
RewriteCond %{HTTP_HOST} ^admin\.cameron\.com$
RewriteRule !^admin/? admin%{REQUEST_URI} [NC,L]
# REWRITE FOLDER TO SUBDOMAIN
RewriteCond %{THE_REQUEST} \s/admin/([^\s]*) [NC]
RewriteRule ^ http://admin.cameron.com/%1 [R=301,L]
所以如果我去:http://cameron.com/admin 我最终会在http://admin.cameron.com/
但是内容是从http://cameron.com/admin加载的
但是这对 CakePHP 2.x 不起作用,因为它显然是重写...
在/app/webroot 的 htaccess 文件中,我有:
<IfModule mod_rewrite.c>
RewriteEngine On
# CAKEPHP RULES
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php [QSA,L]
# REWRITE SUBDOMAIN TO FOLDER
RewriteCond %{HTTP_HOST} ^admin\.cameron\.com$
RewriteRule !^admin/? admin%{REQUEST_URI} [NC,L]
# REWRITE FOLDER TO SUBDOMAIN
RewriteCond %{THE_REQUEST} \s/admin/([^\s]*) [NC]
RewriteRule ^ http://admin.cameron.com/%1 [R=301,L]
</IfModule>
如果我转到:http://cameron.com/admin,它只会尝试加载 AdminController 而不会重定向您,如果我转到:http://admin.cameron.com/,我只会收到 500 内部服务器错误。
关于如何让它在 CakePHP 上工作的任何想法?
【问题讨论】:
-
如果我是对的,您是否只想将 url 更改为指向子域的 url?
-
尝试在您的 webroot .htaccess 文件中的 RewriteEngine On 之后添加此语句 RewriteBase /app/webroot
标签: php apache .htaccess cakephp mod-rewrite