不要重写静态css/js/img文件

bea*_*ear 2 .htaccess mod-rewrite

我试图让我的htaccess文件不重写我的静态文件(js/css/images).

这是我目前的htaccess文件:

RewriteEngine on
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule    !\.(jpg|css|js|gif|png)$    public/    [L]
RewriteRule !\.(jpg|css|js|gif|png)$ public/index.php?url=$1
Run Code Online (Sandbox Code Playgroud)

我该如何重写呢?

Kam*_*rot 12

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !^.*\.(jpg|css|js|gif|png)$ [NC]
RewriteRule ^(.*)$ public/index.php?url=$1
Run Code Online (Sandbox Code Playgroud)

对未以列出的扩展名结尾的现有文件(不区分大小写匹配)的所有请求都被重写为public/index.php将当前URL作为url=GET参数传递


小智 6

这仅适用于它下面的一行.因此,如果您有许多RewriteRules,它可以帮助使用这样的东西:

    RewriteEngine on

    RewriteRule ^(.*?)\.(php|css|js|jpg|jpeg|png|pdf)$ - [L]
    RewriteRule ^(.+)/(.+)/?$ index.php?page=$1&subpage=$2 [L]
    RewriteRule ^(.+)$ index.php?page=$1 [L]
Run Code Online (Sandbox Code Playgroud)