我有几个应用程序位于Apache的目录中。在Apache 2.2中我设置了它,以便一些路由(包括根路由)转到一个应用程序,所有其他路由转到另一个应用程序。我刚刚更新到Apache 2.4并更新了我的所有设置,但是根请求的RewriteCond似乎不再起作用(这绝对是2.2)。
似乎正在发生的事情是根请求的重写条件(www.foo.co.uk)似乎不再匹配,因此正在进入第二次重写规则,我不希望它。 Apache是否有任何可能影响此变化的变化?
<VirtualHost *:80>
ServerAdmin foo@bar.co.uk
ServerName www.foo.co.uk
DocumentRoot /var/www/
<Directory /var/www/>
Options FollowSymLinks -Indexes
AllowOverride All
Order allow,deny
Allow from all
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/$ [NC,OR]
RewriteCond %{REQUEST_URI} ^/css [NC,OR]
//various other RewriteCond's
RewriteCond %{REQUEST_URI} ^/robots.txt [NC]
RewriteRule (.*) firstWebApp/public/$1 [PT,L]
# All other URLs should go to the Other application
RewriteRule (.*) otherWebApp/$1 [PT,L]
</Directory>
LogLevel warn
ErrorLog syslog:local1
答案 0 :(得分:1)
原来问题是我在根文件夹中保留了默认的index.html文件。我不确定为什么行为发生了变化,但删除此文件会导致重写条件再次正常工作。