我使用的框架会将所有URL重写为index.php,除非文件或文件夹确实存在。
# Allow any files or directories that exist to be displayed directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# Rewrite all other URLs to index.php/URL
RewriteRule .* index.php/$0 [PT,L]
但是,我有一个名为' media'的目录,以及一个网址为' / media'的网页。我需要这样做才能进入' / media'被路由到index.php,但查看了里面的内容'媒体'目录像往常一样显示。
所以:
http://example.com/some-page - routed through index.php (already does this)
http://example.com/media - routed through index.php as well
http://example.com/media/images/hello.jpg - asset served as usual
我试过了:
RewriteRule ^media$ index.php/media [PT,L]
这列出了'媒体'的内容。文件夹像往常一样。
RewriteRule ^media/$ index.php/media
这会导致重定向循环。
我不确定其他语法会起作用。
答案 0 :(得分:1)
如果/media/images/hello.jpg是实际文件,那么RewriteCond %{REQUEST_FILENAME} !-f
已经忽略了这一点。
如果不是,则将此规则放在现有路由规则之前:
RewriteRule ^media/.+$ - [NC,L]