是否可以使用httpd.conf从非www版本重定向到我的网站到网站的www版本?
答案 0 :(得分:1)
两个选项:
1
<VirtualHost *:80>
ServerName example.com
RewriteEngine on
RewriteCond %{HTTP_HOST} ^example.com
RewriteRule ^/(.*)$ http://www.example.com/$1 [L,R=301]
</VirtualHost>
2
<VirtualHost *:80>
ServerName example.com
Redirect 301 / http://www.example.com
</VirtualHost>
希望这会有所帮助。
答案 1 :(得分:0)
我确信其中一个Apache boffins会有一个更优雅的解决方案,但由于我有限的apache经验,我的目标是使用vhosts模块(虚拟主机)实现这一目标。我使用它的经验仅限于将Apache配置为反向代理。反向代理通常接收并检查传入请求,然后代表客户端生成新请求到vhosts配置中指定的其他位置。此应用程序中新请求的标准通常是域名,因此,可以帮助您,因为您可以使URL www.mydomain ...看起来与mydomain相同...
首先,在httpd.conf中启用代理模块。
LoadModule negotiation_module modules/mod_negotiation.so
LoadModule proxy_module modules/mod_proxy.so
然后通过httpd.conf
包含vhost配置Include conf/extra/httpd-vhosts.conf
在httpd-vhosts.conf中启用端口80上的命名虚拟主机
NameVirtualHost *:80
然后为您的网站创建条目。请注意,新位置URL来自Proxies透视图。这可能只是localhost来简化事情。
<VirtualHost *:80>
ProxyPreserveHost On
ProxyRequests off
ServerName myalis.mydomain.com
ProxyPass / http://newlocation.mydomain.com/
ProxyPassReverse / http://newlocation.mydomain.com/
</VirtualHost>
您可以使用此方法访问防火墙后面的其他服务器上的文件,从而允许多个服务器从外部人员角度有效地共享端口80以用于Web流量。您还可以更改请求中的端口,以便托管在另一个端口上的站点看起来位于端口80或其他位置。
不要忘记在更改之前备份文件,并在配置更新后重新启动Apache。 有关Apache作为反向代理的更多信息,请访问:
答案 2 :(得分:-2)
Redirecting www to non-www - 使用提供的说明。在里面申请&lt;目录&gt;在httpd.conf中,如果不使用.htaccess。需要ModRewrite。