Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/react-native/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache 新增.htaccess和RewriteRule_Apache_.htaccess_Mod Rewrite_Url Rewriting_Mod Proxy - Fatal编程技术网

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]