這裏是我到目前爲止有:如何將所有請求重定向到index.php並保留其他GET參數?
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !index.php
RewriteRule .* index.php?url=$0 [L]
但是,當我去soemthing像/a?b=c
然後檢查GET參數,可以我只得到a
爲url
,並b
丟失。我怎樣才能保留這一點?
這裏是我到目前爲止有:如何將所有請求重定向到index.php並保留其他GET參數?
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !index.php
RewriteRule .* index.php?url=$0 [L]
但是,當我去soemthing像/a?b=c
然後檢查GET參數,可以我只得到a
爲url
,並b
丟失。我怎樣才能保留這一點?
RewriteEngine on RewriteCond %{REQUEST_FILENAME} !index.php RewriteRule .* index.php?url=$0 [QSA,L]
您需要重寫規則中的QSA。
如何使用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
如果你的索引不在根目錄下,這個如何工作?例如。我希望mysite.com/project/*回退到mysite.com/project/index.php。我可以做FallbackResource /project/index.php,但它會很好有一個路徑相對於.htaccess它定義的位置(這樣我可以移動項目目錄到projectX目錄沒有修改.htaccess) – Nathan 2014-01-17 19:30:23
沒有使用回退實際上比直接重定向慢?由於訪問者現在必須等到引擎失敗**全部**匹配才能重定向到index.php。 – Pacerier 2014-10-05 23:45:49
這也重定向我的CSS和JS文件...我想那些繼續工作,並指着他們應該。 – vsync 2015-10-12 14:16:20
@vsync然後添加一個與這些文件不匹配的「RewriteCond」。例如:'RewriteCond%{REQUEST_URI}!^/js /'不能重寫'js'目錄下的任何文件。 – 2016-12-16 05:26:01