在apache配置文件(即httpd.conf)中,我们进行了虚拟主机配置,该配置最近工作了2年。今天到那里没问题。但当我被要求添加重定向时,它不起作用。我的virtualHost conatainer看起来像这样
<VirtualHost *:80>
DocumentRoot /var/www/html
ServerName domain.com
Redirect 301 / http://www.domain.com/
Redirect 301 /index.html http://www.domain.com/
</VirtualHost>
在这里,当我输入“http://domain.com”时,它正在采取“http://www.domain.com”的预期行为。但是当我输入“http://domain.com/index.html”或“http://www.domain.com/index.html”时,它并没有把我带到“http://www.domain.com” ......这是joomla网站。
任何人都可以为我解决这个问题......
提前致谢
答案 0 :(得分:1)
添加
ServerAlias www.domain.com
在ServerName domain.com
答案 1 :(得分:0)
听起来它在尝试第二次重定向之前应用了第一次重定向。 您是否尝试过将Redirect行放入其他顺序?
Redirect 301 /index.html http://www.domain.com/
Redirect 301 / http://www.domain.com/
答案 2 :(得分:0)
通常,这是通过对mod_rewrite使用更通用的方法来实现的:
此代码应放在域名根目录中的htaccess文件中,即domain.com/.htaccess 或虚拟主机配置。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^domain\.com$
RewriteRule ^(.*)$ http://www.domain.com/$1 [R=301,L]
</IfModule>
(例如也在这里Forcing the www prefix with PHP/htaccess/mod_rewrite)