我刚刚从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 vhost的vhost,并添加了一个别名,只是为了让它工作,直到我将来有时间来解决它,但ServerAlias没有呈现网站,它呈现默认的html / index.html页面。
我很困惑,不知道从哪里开始。无数个小时的谷歌搜索和搜索论坛,没有一个我遇到的解决方案。也许其他人已经经历过这个并解决了,如果是这样,请让我知道解决方案是什么。
顺便说一句,我正在寻找一种非“重写”解决方案,我更喜欢永久重定向。答案 0 :(得分:0)
临时解决方法是删除默认的apache vhost。这是一个临时修复,一旦将另一个vhost添加到apache就会出现问题,因为其中一个vhost必须是&#34;默认&#34;。
答案 1 :(得分:0)
我已经在Ubuntu 14.04LTS全新安装上使用Apache 2.4.7玩了很多天了,我遇到的问题与重定向有关...
似乎在Apache 2.4.7上调用代码的顺序会影响结果。对我有用的规则是重定向指令应该始终位于主站点VirtualHost 之后。
我在每个网站上解决这个问题的方法如下:
sudo mkdir / etc / apache2 / sites-redirection
IncludeOptional sites-enabled/*.conf IncludeOptional sites-redirection/*.conf
<VirtualHost *:80> ServerName origin.website.com RewriteEngine on Redirect 301 / http://destination.website.com </VirtualHost>
要使Rewrite指令起作用,你应该安装mod_rewrite并重新启动apache2服务器。
sudo a2enable重写 sudo service apache2 restart