2011-03-07 57 views

回答

15
 
RewriteEngine on 

RewriteCond %{REQUEST_FILENAME} !index.php 
RewriteRule .* index.php?url=$0 [QSA,L] 

您需要重寫規則中的QSA。

+1

這也重定向我的CSS和JS文件...我想那些繼續工作,並指着他們應該。 – vsync 2015-10-12 14:16:20

+1

@vsync然後添加一個與這些文件不匹配的「RewriteCond」。例如:'RewriteCond%{REQUEST_URI}!^/js /'不能重寫'js'目錄下的任何文件。 – 2016-12-16 05:26:01

23

如何使用FallbackResource指令:「定義不映射到一個文件請求一個默認的URL」

<Directory /web/example.com/htdocs/blog> 
    FallbackResource /index.php 
</Directory> 

這樣,你不必調用在每次請求的modRewrite模塊。

http://httpd.apache.org/docs/2.2/mod/mod_dir.html#fallbackresource

+1

如果你的索引不在根目錄下,這個如何工作?例如。我希望mysite.com/project/*回退到mysite.com/project/index.php。我可以做FallbackResource /project/index.php,但它會很好有一個路徑相對於.htaccess它定義的位置(這樣我可以移動項目目錄到projectX目錄沒有修改.htaccess) – Nathan 2014-01-17 19:30:23

+2

沒有使用回退實際上比直接重定向慢?由於訪問者現在必須等到引擎失敗**全部**匹配才能重定向到index.php。 – Pacerier 2014-10-05 23:45:49

相關問題