从mod_rewrite规则中排除图像

jsu*_*ssa 4 .htaccess mod-rewrite

无意中我的htaccess脚本正在更改图像URL,以便在其URL路径中具有"portfolio /"的任何图像受到不利影响.

有没有办法从该特定规则中排除图像?

redirect 301 "/sitemap.xml" http://www.example.com/sitemap.php

RewriteEngine On

RewriteCond %{REQUEST_URI} !portfolio/project
RewriteCond %{REQUEST_URI} /.*portfolio/.*$ [NC]
RewriteRule ^(.*)portfolio(.*)$ /$1portfolio/project$2 [R=301,L]

RewriteCond $1 !\.(gif|jpe?g|png)$ [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/sitemap.php
RewriteRule ^(.*)$ /index.php/$1 [L]
Run Code Online (Sandbox Code Playgroud)

Igo*_*gor 7

对于第一部分(第一次重写规则)尝试

RewriteCond %{REQUEST_URI} !portfolio/project
RewriteCond %{REQUEST_URI} !\.(gif|jpe?g|png)$ [NC]
RewriteCond %{REQUEST_URI} /.*portfolio/.*$ [NC]
RewriteRule ^(.*)portfolio(.*)$ /$1portfolio/project$2 [R=301,L]
Run Code Online (Sandbox Code Playgroud)

我不确定你为什么要RewriteCond $1 !\.(gif|jpe?g|png)$ [NC]在第二次重写中使用.

RewriteCond %{REQUEST_URI} !\.(gif|jpe?g|png)$ [NC]意味着您不希望将投资组合更改为投资组合/项目,以获得以某些允许的图像扩展名结尾的网址.[NC](不区分大小写)用于跳过JPG,GIF,PnG等扩展