我有.htaccess和mod_rewrite的一些经验,但我不能让它工作。基本上我不是所有的URL都重定向到index.php除了那些指向“public”子目录中的现有文件的人。
例如,如果我有像/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
谢谢:)
答案 0 :(得分:2)
RewriteEngine on
RewriteCond %{DOCUMENT_ROOT}/public/$1 -f
RewriteRule ^(.*)$ /public/$1 [L]
RewriteCond %{REQUEST_URI} !^/index\.php$
RewriteRule ^(.*)$ /index.php [R=301,L]
答案 1 :(得分:2)
感谢Amine的帮助,我终于解决了这个问题,尽管这看起来很混乱:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^(.*)$ - [L]
RewriteCond %{DOCUMENT_ROOT}/public/$1 -f
RewriteRule ^(.*)$ /public/$1 [L]
RewriteRule ^(.*)$ /index.php [L]
希望有所帮助