带子页面的htaccess通配符子域

时间:2015-01-15 20:28:16

标签: .htaccess mod-rewrite subdomain concrete5

我设法在我的网站上激活了通配符子域名。但是我希望能够创建子页面并能够访问这些子页面。

例如:
example.com ==域
example.subdomain/test上的test.example.com == subpage test.example.com/subtest ==子域的子页面,我无法使其工作。

我正在使用concrete5 CMS ......

我当前的htaccess代码

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

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

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME}/index.html !-f
RewriteCond %{REQUEST_FILENAME}/index.php !-f

RewriteRule . index.php [L]
</IfModule>

我也试过这段代码:

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

但是,这始终显示子域名页面的内容,而不是子域名下面的页面。

----编辑----

克罗伊斯在聊天时给了我答案。

这是我的htaccess现在可以使用通配符子域的子页面(使用Concrete5 CMS):

RewriteEngine On
RewriteBase /

RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTP_HOST} (.+)\.example\.com$ [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME}/index.html !-f
RewriteCond %{REQUEST_FILENAME}/index.php !-f
RewriteRule ^ index.php/subdomain/%1%{REQUEST_URI} [NE,L]

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

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME}/index.html !-f
RewriteCond %{REQUEST_FILENAME}/index.php !-f

RewriteRule . index.php [L]

1 个答案:

答案 0 :(得分:0)

您可以使用:

RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTP_HOST} (.+)\.example\.com$ [NC]
RewriteCond %{REQUEST_URI} !^/subdomain/ [NC]
RewriteRule ^ /subdomain/%1%{REQUEST_URI} [NE,L]