Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.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)根据用户选择的域重定向到目录_Apache_Http_.htaccess_Redirect_Directory - Fatal编程技术网

Apache(htaccess)根据用户选择的域重定向到目录

Apache(htaccess)根据用户选择的域重定向到目录,apache,http,.htaccess,redirect,directory,Apache,Http,.htaccess,Redirect,Directory,我在这里发现了一些关于stackoverflow的有趣想法,但没有一个对我来说足够清楚,所以我不得不问自己,这是否可以做到:) 情况: 我已经安装了带有ApacheHTTP服务器的linux,并且在www目录的文件夹中有一堆不同内容的站点 比如说: www/Site1 (Phpbb) www/Site2 (Wordpress) www/Site3 (Own web pages) 我拥有一个打算在Site3上使用的域(我们称之为Site3.com,www.Site3.com)。 我在no-ip.

我在这里发现了一些关于stackoverflow的有趣想法,但没有一个对我来说足够清楚,所以我不得不问自己,这是否可以做到:)

情况:

我已经安装了带有ApacheHTTP服务器的linux,并且在www目录的文件夹中有一堆不同内容的站点

比如说:

www/Site1 (Phpbb)
www/Site2 (Wordpress)
www/Site3 (Own web pages)
我拥有一个打算在Site3上使用的域(我们称之为Site3.com,www.Site3.com)。 我在no-ip.org上又创建了两个域(我们称它们为site1.sytes.net和site2.sytes.net)。 所有三个创建的域都指向linux(apache)服务器ip地址的端口80

因此,我们已准备好这些域:

www.site3.com
site1.sytes.net
site2.sytes.net
现在的问题是:

如何为需要来自这些域的内容的用户创建指向特定目录的重定向。 我希望希望希望获取“site1.sytes.net”(并将其写入浏览器)的用户指向site1目录,并重写浏览器地址以忽略该目录并仅放置“http://site1.sytes.net“

例如:

User want: site1.sytes.net [/index.html]
Server goes to: www/Site1 [/index.html]
User see in browser: http://site1.sytes.net [/index.html]
等等:

site2.sytes.net [/index.html] => www/Site2 [/index.html]
www.site3.com [/index.html] => www/Site3 [/index.html]

如果我没有弄错的话,HTTP\U主机将只返回域,因此尝试找出用户在site1.sytes.net和site2.sytes.net浏览器中写入的内容是无用的(因为它将只返回sytes.net)。

您确实需要
%{HTTP\U主机}
,是的,它只匹配域。但是您在一个条件中使用它,并使用
%{REQUEST\u URI}
或规则本身来匹配URI。尝试将其放在文档根目录下的htaccess文件中(我假设所有站点的根目录都是相同的,否则,这样做没有任何意义):

如果这不起作用,可能是因为no-ip.org正在将请求转换为服务器最近缓存的ip地址。
RewriteEngine On
RewriteCond %{HTTP_HOST} site1.sytes.net [NC]
RewriteCond %{REQUEST_URI} !^/Site1
RewriteRule ^(.*)$ /Site1/$1 [L]

RewriteCond %{HTTP_HOST} site2.sytes.net [NC]
RewriteCond %{REQUEST_URI} !^/Site2
RewriteRule ^(.*)$ /Site2/$1 [L]

RewriteCond %{HTTP_HOST} www.site3.com [NC]
RewriteCond %{REQUEST_URI} !^/Site3
RewriteRule ^(.*)$ /Site3/$1 [L]