Mod rewrite mod_重写但跳过目录
我正试图避免使用如下URL: 图像/ 或 images/valid-filename.png 或 图像/invalid-filename.png 避免被改写 我已经检查了其他的示例问题,比如和和这个问题,但是我没有设法获得规则来实现我想要的 以下是我现在拥有的: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
# 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
添加到第二条重写规则中。这将强制重定向,以便查看是否满足规则。也许有一个完全不同的错误?