为什么RewriteCond不在httpd.conf中工作?

时间:2015-01-15 02:58:15

标签: apache mod-rewrite yii2

我有一个使用Yii2 web框架的网站,我试图用apache做的是当请求不要求js或css文件时重写url。这是我的配置:

    #in httpd.conf
   <VirtualHost *:80> 
        DocumentRoot /Users/shenshijun/Sites/intuplus/frontend/web
        ServerName intuplus
        RewriteEngine On
        <IfModule rewrite_module>

            RewriteCond %{REQUEST_FILENAME} !-f
            RewriteCond %{REQUEST_FILENAME} !-d
            RewriteRule ^/(.*)$ /index.php/$1

            LogLevel alert rewrite:trace3
        </IfModule>
    </VirtualHost>

js文件的url类似于以下内容:http://intuplus/assets/85c70b6b/js/bootstrap.js,当我删除重写规则时,我可以访问它。但是当我添加rewriterule和rewritecond时,无论如何都会重写url并且我无法访问js文件或css文件。那么,有人可以解释为什么RewriteCond不在这里工作吗?

哦,apache版本:Server version: Apache/2.4.10 (Unix)

1 个答案:

答案 0 :(得分:0)

你的重写规则是错误的,你应该试试这个:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php

了解详情:http://www.yiiframework.com/doc-2.0/guide-start-installation.html#recommended-apache-configuration