Mod rewrite mod_重写但跳过目录

Mod rewrite mod_重写但跳过目录,mod-rewrite,directory,Mod Rewrite,Directory,我正试图避免使用如下URL: 图像/ 或 images/valid-filename.png 或 图像/invalid-filename.png 避免被改写 我已经检查了其他的示例问题,比如和和这个问题,但是我没有设法获得规则来实现我想要的 以下是我现在拥有的: # Enable URL Rewriting Options -Indexes <IfModule mod_rewrite.c> RewriteEngine on RewriteRule ^(scripts|styl

我正试图避免使用如下URL:

图像/

images/valid-filename.png

图像/invalid-filename.png

避免被改写

我已经检查了其他的示例问题,比如和和这个问题,但是我没有设法获得规则来实现我想要的

以下是我现在拥有的:

# Enable URL Rewriting
Options -Indexes
<IfModule mod_rewrite.c>
  RewriteEngine on
  RewriteRule ^(scripts|styles|images)(/.*|$) - [L]

  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteCond %{REQUEST_URI} !=/robots.txt
  RewriteCond %{REQUEST_URI} !=/favicon.ico
  # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  # This solved the problem
  # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  RewriteCond %{REQUEST_URI} !images/.* [NC]
  RewriteRule ^(.*)$ index.php [L,QSA]
</IfModule>
#启用URL重写
选项-索引
重新启动发动机
重写规则^(脚本|样式|图像)(/.*|$)-[L]
重写cond%{REQUEST_FILENAME}-F
重写cond%{REQUEST_FILENAME}-D
重写cond%{REQUEST_URI}=/robots.txt
重写cond%{REQUEST_URI}=/图标文件
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#这就解决了问题
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
重写cond%{REQUEST_URI}!图像/*[NC]
重写规则^(.*)$index.php[L,QSA]
如果我导航到www.site.com/images/,我会被重定向到www.site.com

如果我导航到www.site.com/images/invalid filename.png,我会被重定向到www.site.com

但是www.site.com/images/valid filename.png加载正确

有人能解释一下如何实现上述重写行为吗


非常感谢

尝试添加此重写条件:
RewriteCond%{REQUEST\u URI}!图像/*[NC]


它将检查URI是否以
images/
开头,如果以
开头,则不符合规则。

Hi Christopher Brix。那太完美了。此条件属于其他重写条件规则之后的条件。我更新了我的问题以反映你的答案。非常感谢你!实际上-很快说-一个php脚本在url上返回了'exit',所以这最终实际上不起作用-但看起来似乎是。有任何可能的修改可以尝试吗?@MyStream这很奇怪。这对我有用。并且:您的第一个重写规则
RewriteRule^(脚本|样式|图像)(/.*.|$)-[L]
避免了以
图像
开头的每个url也被重写。您可以将
R=302
添加到第二条重写规则中。这将强制重定向,以便查看是否满足规则。也许有一个完全不同的错误?