将所有内容重定向到index.php

时间:2011-11-17 02:21:06

标签: php .htaccess mod-rewrite indexing

如果文件或目录存在,我不想将所有内容重定向到index.php exepept。我试过谷歌的一些方法,但这确实减慢了网站的速度,并没有真正起作用,所以我觉得我弄错了。

所以这样的网址:

    `site.com/Projects/S01/ -> site.com/Projects/S01/index.php (original)`
    `site.com/Projects/GE5/ -> site.com/Projects/GE5/index.php (original)`
    `site.com/Projects/     -> site.com/index.php`
    `site.com/Websites/     -> site.com/index.php`
    `sits.com/Testifcate/   -> site.com/index.php`

这是最快的方式吗?我试过的所有方法都很慢。 谢谢。诸如main.css之类的文件在加载时也很慢,也许那些文件不能实现检查以使其更快?最好的方法是什么?

3 个答案:

答案 0 :(得分:2)

这是我的重写规则:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]

答案 1 :(得分:1)

尝试以下方法:

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f # ensures it's not a file
RewriteCond %{REQUEST_FILENAME} !-d # ensures it's not a directory
RewriteRule . index.php [L,QSA] # . matches all, and routes to index.php if the above conditions do not match

答案 2 :(得分:0)

这适合你吗?

RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_URI} ^$
RewriteCond %{HTTP_HOST} ^domain.com$
RewriteRule ^$ http://domain.com/index.php [L,R=301]

我希望它有所帮助