0

我对 .htaccess 和 mod_rewrite 有一些经验,但我无法让它工作。基本上,我不想将所有 URL 都重定向到 index.php,除非那些指向“公共”子目录中现有文件的 URL。

例如,如果我有一个像 /public/logo.png 这样的文件,我想要这个:

http://example.com/logo.png -> /public/logo.png http://example.com/logo2.png -> index.php(logo2.png 不存在) http://example.com /whatever -> index.php

谢谢 :)

4

2 回答 2

2
RewriteEngine on

RewriteCond  %{DOCUMENT_ROOT}/public/$1 -f
RewriteRule  ^(.*)$  /public/$1  [L]

RewriteCond %{REQUEST_URI} !^/index\.php$
RewriteRule ^(.*)$ /index.php [R=301,L]
于 2013-06-13T11:06:12.643 回答
2

感谢 Amine 的帮助,我终于解决了这个问题,尽管这看起来很混乱:

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^(.*)$ - [L]

RewriteCond  %{DOCUMENT_ROOT}/public/$1 -f
RewriteRule  ^(.*)$  /public/$1  [L]

RewriteRule ^(.*)$ /index.php [L]

希望能帮助到你

于 2013-06-13T12:21:59.047 回答