Apache重写:只重写索引URL,不考虑深度,但文件扩展名例外

Apache重写:只重写索引URL,不考虑深度,但文件扩展名例外,apache,mod-rewrite,Apache,Mod Rewrite,虽然了解设置很重要,但我还是有一些工作要做 有了多域支持(多个域使用完全相同的软件副本),我只需要重写目录(以dir1/或dir2/结尾) 这里是引用文件的地方 site1.com/gallery/image.jpg site2.net/gallery/image.png gallery/(此处为PHP代码) .htaccess 因此,我只希望将目录重写为gallery/而将所有图像文件(扩展名)重写为site1/gallery/image.jpg路径 我目前只重写了基本库/路径,但它不会重写更

虽然了解设置很重要,但我还是有一些工作要做

有了多域支持(多个域使用完全相同的软件副本),我只需要重写目录(以dir1/或dir2/结尾)

这里是引用文件的地方

site1.com/gallery/image.jpg

site2.net/gallery/image.png

gallery/(此处为PHP代码)

.htaccess

因此,我只希望将目录重写为gallery/而将所有图像文件(扩展名)重写为site1/gallery/image.jpg路径

我目前只重写了基本库/路径,但它不会重写更深层次的库索引(例如gallery/my_gallery/),但图像异常也会起作用

RewriteEngine on
RewriteRule ^[^/]*/gallery/$ gallery/$1 [QSA]
RewriteCond %{REQUEST_URI} !\.(gif|jpg|png)$

RewriteCond %{REQUEST_URI} !.*/(gallery|admin|blog)
RewriteRule !\.(css|js)$ index.php

那么,我如何在保持图像文件异常的同时捕获所有目录,而不考虑深度呢?

事实证明,我所需要做的只是将文件扩展名添加到重写条件中。另外,需要注意的是,重写条件必须出现在重写规则之前

RewriteEngine on
RewriteCond %{REQUEST_URI} !\.(css|gif|ico|jpg|js|mp3|png|swf|xml)$
RewriteRule ^[^/]*/(gallery|admin|blog)(.+) $1$2 [QSA]
RewriteCond %{REQUEST_URI} !.*/(gallery|admin|blog)
RewriteRule !\.(css|js)$ index.php