0

我有一些简单的 RewriteRules 将所有路径变量重定向到 /index.php。但现在我希望为所有 /img/(.*) 网址例外。

这是一个片段。请指教。

RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) index.php/$1 [L]

我尝试RewriteRule ^img/(.*) img/index.php/$1 [L]在最后一条包罗万象的行上方添加,但它不起作用。

我追求的结果是这样的:

url      --> script / path variables
====================================
/abc/def --> /index.php/abc/def
/img/abc --> /img/index.php/abc

你能为我指出正确的方向吗?

4

1 回答 1

1

您不仅需要将它添加到最后一条 catchall 行的上方,还需要保留 catchall 所需的条件,并同样将它们复制到您自己的/img/路由中:

RewriteEngine On

RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^img/(.*) img/index.php/$1 [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) index.php/$1 [L]
于 2012-09-27T20:13:53.867 回答