2

我正在创建一个站点,用户可以在其中创建包含文件、文件夹等的子域。这些站点进入一个名为网站的文件夹,因此它将是

site.com/websites/subdomain.site.com

我只需要{REQUEST_URI}在结尾处,RewriteRule以便用户可以转到示例,subdomain.site.com/images/etc/img.jpg并且仍然会显示他们的子域subdomain.site.com/images/etc/img.jpg,但内容实际上会在site.com/websites/subdomain.site.com/images/etc/img.jpg

很抱歉创建了多个问题,文档对我来说很难,我对此完全陌生,但我正在尝试......请帮助解决这个问题:)

RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_URI} !^/websites/
RewriteCond %{HTTP_HOST} (.*)$ [NC]
RewriteRule ^(.*)$ /websites/%1/ [L]
ErrorDocument 404 /
4

2 回答 2

1

您的 .htaccess 非常接近您想要的。您只需要使用$1,如图所示:

RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_URI} !^/websites/
RewriteCond %{HTTP_HOST} ^(.*)$ [NC]
RewriteRule ^(.*)$ /websites/%1/$1 [L]
ErrorDocument 404 /

%1仅指 . 中匹配的域RewriteCond
$1需要引用匹配的 URL 的其余部分ReqwriteRule

编辑:排除www.site.com

RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_HOST} !^(www\.)?(site\.com)$ [NC]
RewriteCond %{REQUEST_URI} !^/websites/
RewriteCond %{HTTP_HOST} ^(.*)$ [NC]
RewriteRule ^(.*)$ /websites/%1/$1 [L]
ErrorDocument 404 /
于 2013-04-29T11:24:21.697 回答
0

考虑“子域”是你网站内的一个文件夹,然后试试下面的代码

RewriteEngine on
RewriteBase / 

#if not already subdomain.website.com
RewriteCond %{HTTP_HOST} !^subdomain\.website\.com$ [NC] 
#if request is for subdomain/, go to subdomain.website.com
RewriteRule ^subdomain/$ http://subdomain.site.com [L,NC,R=301] 
于 2013-04-29T12:01:58.140 回答