2

我有几个应用程序位于 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

4

1 回答 1

1

原来问题是我把默认的 index.html 文件留在了根文件夹中。我不确定为什么行为发生了变化,但删除此文件会导致重写条件再次正常工作。

于 2013-11-15T13:35:17.727 回答