Apache 新增.htaccess和RewriteRule
我正在制作一个网站,用户可以创建带有文件、文件夹等的子域。 这些网站进入一个名为“网站”的文件夹,因此它将Apache 新增.htaccess和RewriteRule,apache,.htaccess,mod-rewrite,url-rewriting,mod-proxy,Apache,.htaccess,Mod Rewrite,Url Rewriting,Mod Proxy,我正在制作一个网站,用户可以创建带有文件、文件夹等的子域。 这些网站进入一个名为“网站”的文件夹,因此它将 site.com/websites/subdomain.site.com 我只需要在重写规则的末尾获取{REQUEST_URI},这样用户就可以转到 例如,subdomain.site.com/images/etc/img.jpg,它们的子域仍将显示为subdomain.site.com/images/etc/img.jpg,但内容实际上将显示在site.com/websites/sub
site.com/websites/subdomain.site.com
我只需要在重写规则的末尾获取{REQUEST_URI}
,这样用户就可以转到
例如,subdomain.site.com/images/etc/img.jpg
,它们的子域仍将显示为subdomain.site.com/images/etc/img.jpg
,但内容实际上将显示在site.com/websites/subdomain.site.com/images/etc/img.jpg
很抱歉提出了多个问题,这些文档对我来说很难,我对这个完全陌生,但我正在尝试。。。请帮忙:)
您的.htaccess非常接近您想要的。您只需使用$1
,并显示:
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_URI} !^/websites/
RewriteCond %{HTTP_HOST} ^(.*)$ [NC]
RewriteRule ^(.*)$ /websites/%1/$1 [L]
ErrorDocument 404 /
%1
仅指在RewriteCond
中匹配的域
$1
需要引用在ReqwriteRule
中匹配的URL的其余部分
编辑:排除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 /
考虑“子域”是你的网站内的一个文件夹,然后尝试下面的代码
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]
谢谢有可能将www.排除在外吗?我的意思是,如果用户访问主页www.site.com site.com或site.com/index.php,请终止wholde查询?谢谢你的帮助help@user1930593你的意思是www.site.com应该在地址栏中转到site.com,www.subdomain.site.com转到subdomain.site.com?不,我想要www.site.com、site.com、www.site.com/login.php、www.site.com/register.php等等。。。所有内容均显示原始内容,除非有(.*)。site.com网站除外。希望您理解,谢谢!太好了!:)子域未知。它将由用户创建。
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]