我有一个网站,我已经启用了子域名访问,例如:
http://subdomain1.example.com
访问相同的代码,但传递域参数以显示不同的微型网站。 httpd.conf代码如下所示:
RewriteCond %{HTTP_HOST} ^([^./]+)\.example\.com$
RewriteRule forums.html$ /browse.php?type=forums&domain=%1 [QSA]
现在我需要将http://example.com重定向到http://www.example.com
我尝试了这个,但它不起作用:
RewriteCond %{HTTP_HOST} ^example\.com
RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L]
(来源:http://www.cyberciti.biz/faq/apache-redirect-domaincom-to-wwwdomaincom/)
EDIT1
<VirtualHost IPADDRESS:80>
ServerAlias *.example.com
DocumentRoot /var/www/html/abc
ServerName www.example.com
UseCanonicalName On
EDIT2
嗨mreithub,
我需要的设置是这样的:
http://X1.example.com应该使用/ something / X1
中的代码http://X2.example.com应该使用/ something / X2
中的代码http://example.com应重定向到http://www.example.com
http://www.example.com/scriptA.php应该使用/var/www/html/abc/scriptA.php中的代码
http://whateverelse.example.com/scriptA.php应使用/var/www/html/abc/scriptA.php中的代码,但应使用'domain = whateverelse'参数传递(但屏幕上的网址应始终显示域名为http://whateverelse.example.com)
我问了一个关于SF的问题 - https://serverfault.com/questions/408805/configuring-httpd-conf-to-handle-wildcard-domains-with-multiple-scripts - 我使用adaptr的技术将域参数传递给PHP脚本。
答案 0 :(得分:0)
我个人最喜欢在apache中重定向整个VirtualHosts,只需为域重新定向创建一个VirtualHost并使用Redirect
指令:
<VirtualHost IPADDRESS:80>
ServerName example.com
Redirect / http://www.example.com/
DocumentRoot /var/www # <-- Just for completeness
</VirtualHost>
...然后是您实际网站的另一个VirtualHost
Redirect
重定向每个要托管a到b的请求,同时保留任何后缀(例如http://example.com/foo?bar=bak
变为http://www.example.com/foo?bar=bak
)。
我经常使用Redirect
从http://重写为https://
答案 1 :(得分:0)
哇。 3个小时后......很多变化,很多学习。
1)改变了这个:
NameVirtualHost IPADDRESS:80
要:
NameVirtualHost *:80
2)标记全部:
<VirtualHost IPADDRESS:80>
如:
<VirtualHost *:80>
3)重新安排ServerName并将其放在VirtualHost中(不确定这是否有所不同)
<VirtualHost *:80>
ServerName test4.example.com
ServerAlias test4.example.com
DocumentRoot /home/test4/public_html
UseCanonicalName On
</VirtualHost>
3)重新安排所有VirtualHosts。早先放置“静态”/固定子域,将最后一个放置为全局/ www。最后一个看起来像:
<VirtualHost *:80>
ServerName www.example.com
ServerAlias example.com *.example.com
DocumentRoot /var/www/html/abc
UseCanonicalName On
...