Apache将admin子域重写为子目录

时间:2013-01-29 10:28:48

标签: apache mod-rewrite

抱歉,如果这是一个重复的问题,但我一直在尝试其他问题的各种建议,显然没有运气。我只是想设置一个admin.domain.com/everything/else/子域,它将重写(内部)到domain.com/admin/everything/else,以便我可以设置一个A NAME DNS记录,以确保从一台服务器提供管理区域。对于任何子域,此规则都不应该是动态的 - 我只需要“admin”。

我的.htaccess中已经有以下RewriteRule,这需要与它一起工作:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ app.php [QSA,L]

之后我可以添加更多规则吗?我已经尝试在上述规则之后添加以下内容,但我承认我不知道我在做什么!

RewriteCond %{HTTP_HOST} admin\.[a-z]+\.[a-z]+
RewriteRule ^(.+)$ /admin/$1 [L]

此时导致500内部服务器错误。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

你可以试试这个:

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST}  ^(www\.)?admin\.domain\.com   [NC]
RewriteRule  ^(.*)/?$   http://domain.com/admin/$1  [L]

无声地映射

http://admin.domain.com/everything/else/

http://www.admin.domain.com/everything/else/

要:

http://domain.com/admin/everything/else

要进行永久性和可见的重定向,请将[L]替换为[R=301,L]