子域通过htaccess动态指向子目录而不更改URL

时间:2016-05-31 05:58:22

标签: php apache .htaccess mod-rewrite

我希望通过htaccess动态将子域指向子目录,而不更改下面显示的URL和目录列表。

|-- Test (Root Directory) <-- test.com redirects to this folder.
|-- index.php
|
|-- subdomain (Directory)
|
|---- abc (Directory) <-- abc.test.com redirects to this folder.
|------ index.php
|
|---- pqr (Directory) <-- pqr.test.com redirects to this folder.
|------ index.php
|
|---- xyz (Directory) <-- xyz.test.com redirects to this folder.
|------ index.php

我已将以下重写规则应用于指向子域。

.htaccess文件

RewriteEngine On

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

RewriteCond %{HTTP_HOST} ^test\.com $
RewriteCond %{REQUEST_URI} !^/subdomain/
RewriteRule (.*) /subdomain/$1

RewriteCond %{HTTP_HOST} ^(^.*)\.test.com
RewriteCond %{REQUEST_URI} !^/subdomain/
RewriteRule (.*) /subdomain/$1

我对htaccess重写并不是那么好。

我已关注此subdomain on the fly

但我无法成功。您的建议非常感谢。

感谢。

1 个答案:

答案 0 :(得分:0)

希望这会有所帮助

RewriteEngine on

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

RewriteCond %{HTTP_HOST} !^www\.
RewriteCond %{HTTP_HOST} ^([^\.]+)\.test\.com$ [NC]
RewriteRule ^(.*)$ http://test.com/subdomain/%1/$1 [L,NC,QSA]