htaccess逻辑在vhost中不起作用

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} !\.(gif|jpg|png|swf|css|html|js|ico|pdf)$
RewriteCond %{REQUEST_URI} !^/page_loader.php$
RewriteCond %{REQUEST_URI} !^/page_loader.php/
RewriteRule ^(.*)$ page_loader.php/$1?%{QUERY_STRING} [L]

I have run a Debian server with Apache 2.2.

I have a system that routes all traffic through a file named page_loader.php.

When I run the above in a .htaccess file there are no problems, but as soon as I try to put it in the vhost file directly Apache fails to restart and just says FAIL but without anything in the log files.

Has anyone else had anything like this?

If you are putting that in your Apache config file directly, RewriteBase only works inside <directory> directive. If you don't do that it will fail to start.

<Directory "/var/www/path/to/doc/root">
       RewriteEngine On
       RewriteBase /
       RewriteCond %{REQUEST_URI} !\.(gif|jpg|png|swf|css|html|js|ico|pdf)$
       RewriteCond %{REQUEST_URI} !^/page_loader.php$
       RewriteCond %{REQUEST_URI} !^/page_loader.php/
       RewriteRule ^(.*)$ page_loader.php/$1?%{QUERY_STRING} [L]
</Directory >