设置子域指向一个文件夹使用htaccess

问题描述:

嗨,大家好我已经建立了一个网站使用zend框架和使用干净的网址 - 但是我需要设置一个子域,使其指向我的网站上只有一个文件夹即我想要的子域admin.mysite.com指向mysite.com/admin和我想要做的是用我的htaccess文件设置子域指向一个文件夹使用htaccess

编辑-------

这是我htaccess文件:

RewriteEngine on 

RewriteCond %{HTTP_HOST} ^mysite.com [NC] 
RewriteRule (.*) http://www.mysite.com/$1 [L,R=301] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule .* index.php 
RewriteRule !\.(js|ico|gif|jpg|png|css|htm|html)$ index.php 

RewriteCond %{REQUEST_URI} !^/admin 
RewriteCond %{HTTP_HOST} ^admin 
RewriteCond %{REQUEST_URI} !^/admin 
RewriteRule ^(.*)$ admin/$1 [L] 


AddType text/css .css 
AddHandler php5-script .php 

尝试上述现有的URL rerwites是这样的:

RewriteCond %{HTTP_HOST} ^admin 
RewriteCond %{REQUEST_URI} !^/admin 
RewriteRule ^(.*)$ admin/$1 [L] 

编辑:为了防止它被解释为一个Zend Frameowrk controlleradd上述现有RewriteCond S中的以下,以防止它改变你的管理员网址:

RewriteCond %{REQUEST_URI} !^/admin 

而且我认为应该照顾一切。

编辑:.htaccess文件应该看起来更像以下,虽然我不认为任何的变化会涉及到你的403错误,但也许我们会得到幸运。如果不是的话,我会不断思考可能会导致这种情况的原因。

RewriteEngine on 

RewriteCond %{HTTP_HOST} ^mysite.com [NC] 
RewriteRule (.*) http://www.mysite.com/$1 [L,R=301] 

# Don't rewrite requests on admin subdomain to the Zend Framework handler 
RewriteCond %{HTTP_HOST} !^admin 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule .* index.php 

RewriteCond %{HTTP_HOST} !^admin 
RewriteRule !\.(js|ico|gif|jpg|png|css|htm|html)$ index.php [L] 

RewriteCond %{HTTP_HOST} ^admin 
RewriteCond %{REQUEST_URI} !^/admin 
RewriteRule ^(.*)$ admin/$1 [L] 

AddType text/css .css 
AddHandler php5-script .php 
+0

我不想管理员文件夹来作为控制器来处理 - 实际上我的管理面板是不同的应用程序,所以我希望它independantly运行。我的老主机有一个真正简单的面板来创建子域名,但在我的新主机上,我必须写在一个htaccess文件:( – Ali 2010-06-27 07:31:11

+0

啊,现在我已经更新了答案,你可以试试看看它是否有效。 – 2010-06-27 07:40:58

+0

我得到了一个奇怪的原因403错误?我的管理文件夹是在我的public_html文件夹... – Ali 2010-06-27 08:09:16

在管理.mysite.com“/”可以将符号链接到“/ admin”

子域admin.mysite.com使用指令重定向。

Redirect permanent/http://mysite.com/admin 

或者你可以使用代理服务器:

ProxyPass/http://mysite.com/admin 
ProxyPassReverse/http://mysite.com/admin 
ProxyPreserveHost on