我试图避免这样的网址:
图片/
或者
图像/有效文件名.png
或者
图像/无效文件名.png
从被重写
我已经检查了其他示例问题,例如根目录上的 .htaccess mod_rewrite 但需要它跳过所有其他目录和.htaccess mod_rewrite 豁免以及这个https://stackoverflow.com/questions/7209746/can-mod-rewrite-skip -a-folder但我没有设法获得实现我所追求的规则。
这是我现在所拥有的:
# 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>
如果我导航到www.site.com/images/,我会被重定向到 www.site.com
如果我导航到www.site.com/images/invalid-filename.png,我会被重定向到 www.site.com
但www.site.com/images/valid-filename.png正确加载。
有人可以帮助解释如何实现上述重写行为吗?
非常感谢