所以,我有這個Zend風格的前端控制器設置。基本上它只是將每個url重定向回索引。mod_rewrite noobie question
的URL是在/ controller/view/ + [additional parameters]
形式,我想在下面的表單創建一些捷徑:
RewriteRule ^home /home/index
RewriteRule ^products /products/view
RewriteRule .* index.php
然而,mod_rewrite的似乎無視我的重寫規則。儘管我很確定它應該能夠抓住這一點,但它並沒有改變家庭/指數的位置。所以,我認爲這與重命名請求uri有關係嗎?
這裏的.htaccess文件:
Options +FollowSymLinks
RewriteEngine on
RewriteRule ^admin/ - [L]
RewriteRule ^media/ - [L]
RewriteRule ^home home/index
RewriteRule ^products products/view
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule .* index.php
做的規則不工作或只是預期的結果錯誤(* index.php *無法處理它)?如果是後者,$ _SERVER ['REQUEST_URI']'包含什麼值? – Gumbo 2009-08-24 09:54:30
$ _SERVER ['REQUEST_URI']包含原始的uri(家庭或產品)。這就像它無法改變REQUEST_URI,即使我確信它能夠抓住它。所以當它到達最後一行時,會將所有內容都重定向到index.php,它將它視爲沒有改變。 – JHollanti 2009-08-24 11:08:48
嗯,REQUEST_URI應該保持不變,因爲你正在重寫而不是重定向。如果你想要REQUEST_URI,你可以爲它寫一條單獨的線。您沒有[L],代表您的家庭和產品系列中的Last Rule。這意味着它將繼續尋找任何其他匹配。我已經調整了我的答案。 – Fabian 2009-08-24 12:51:52