我想在一台apache服务器上运行2个站点,但没有固定域名,所以基本上想要任何带有“site2”字样的网址中的任何内容都会重定向到/ site2文件夹...例如
http://wordssite2.blah.com -> /var/www/html/site2/index.html
http://wordssite2.blah2.com/index.html -> /var/www/html/site2/index.html
http://wordssite2.foo.com/gallery.html -> /var/www/html/site2/gallery.html
http://wordssite1.blah.com/gallery.html -> /var/www/html/gallery.html
我是apache的新手,并且不知道是使用重定向规则还是使用VirtualHosts来执行此操作。 Redirect似乎支持通配符,VirtualHosts似乎想要一个固定的域名。
答案 0 :(得分:0)
以下配置应放在包含" site2"的域的vhost文件中:
<VirtualHost *:80>
DocumentRoot /var/www/html/site2/
ServerAlias *site2*
RewriteEngine On
RewriteCond %{HTTP_HOST} "site2"
RewriteRule ^(.*)$ $1
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
ServerAlias
指令用于告诉apache处理包含单词&#34; site2&#34;的请求。并应用此特定的vhost配置。
RewriteCond
指令将检查传入请求的域名是否包含&#34; site2&#34;。服务器变量HTTP_HOST
返回HTTP请求标头中收到的域名。
如果是,RewriteRule
将提供来自&#34; / var / www / html / site2&#34;的请求。文件夹(在DocumentRoot
指令中提到)并附加由$1
参数提取的URI。
注意:
您必须先在Apache上启用mod_rewrite才能使此配置生效。
您应该为&#34; site2&#34;设置正确的DNS记录。域并将流量引导到您的服务器。