我刚刚从 2.2.x 切换到运行 2.4.7 的新服务器,现在我遇到了一些问题。我解决了迄今为止遇到的大多数问题,除了这个永久重定向问题。这是代码:
<VirtualHost *:80>
ServerName example.com
ErrorLog /var/log/apache2/example.com.error.log
CustomLog /var/log/apache2/example.com.custom.log common
Redirect 301 / http://www.example.com/
# RedirectMatch permanent /(.*) http://www.example.com/$1
</VirtualHost>
<VirtualHost *:80>
ServerAdmin 393@7079.net
ServerName www.example.com
# ServerAlias example.com
DocumentRoot /home/www/example
ErrorLog /var/log/apache2/www.example.com.error.log
CustomLog /var/log/apache2/www.example.com.custom.log common
DirectoryIndex index.jsp index.html
<IfModule jk_module>
JkMount /*.cfm worker1
JkMount /*.cfc worker1
JkMount /*.do worker1
JkMount /*.jsp worker1
JkMount /*.cfchart worker1
JkMount /*.cfm/* worker1
JkMount /*.cfml/* worker1
#JkMount /railo-context/* worker1
JkLogFile /var/log/apache2/mod_jk.log
</IfModule>
<Directory /home/www/example/>
Require all granted
</Directory>
</VirtualHost>
当我访问http://example.com时,它显示 /var/www/html 站点的默认 apache 页面,而不是执行重定向。我有 2 台运行 2.4.7 的服务器,它们的行为方式相同,旧服务器运行此代码正常。我尝试使用您被注释掉的 RedirectMatch,因为它也不起作用。我还注释掉了第一个重定向到 www 虚拟主机的虚拟主机,并为其添加了一个别名,只是为了让它工作,直到我将来有时间让它弄清楚,但是 ServerAlias 没有渲染该站点,它渲染了默认的 html/index.html 页面。
我很困惑,不知道从哪里开始。无数小时的谷歌搜索和搜索论坛,我没有遇到一个单一的解决方案。也许其他人已经经历过并解决了这个问题,如果是这样,请告诉我解决方案是什么。
顺便说一句,我正在寻找一个非“重写”的解决方案,我更喜欢永久重定向。