我試圖將RewriteRule應用於主頁。我期望以下規則找到只有主頁...RewriteCond for homepage not working
RewriteCond %{REQUEST_URI} ^/$
這是行不通的。任何想法爲什麼?
我在htaccess文件做的唯一的另一件事是一個簡單的測試RewriteRule
以上後...
RewriteRule (.*) /test.php [L,QSA]
我試圖將RewriteRule應用於主頁。我期望以下規則找到只有主頁...RewriteCond for homepage not working
RewriteCond %{REQUEST_URI} ^/$
這是行不通的。任何想法爲什麼?
我在htaccess文件做的唯一的另一件事是一個簡單的測試RewriteRule
以上後...
RewriteRule (.*) /test.php [L,QSA]
有時候,我真的不知道爲什麼,你會發現mod_dir得到應用於 mod_rewrite之前的URI 。這是應該的,但我注意到有時^/$
工作,有時甚至^$
工作在重寫規則。發生什麼事是將DirectoryIndex
應用於URI,它會變成/index.php
或其他任何內容。所以你必須做的是與之相匹配。因此,像:
RewriteCond %{REQUEST_URI} ^/(?:index\.php)$
RewriteRule (.*) /test.php [L,QSA]
或者更簡單地說:
RewriteRule ^(?:index\.php)$ /test.php [L,QSA]
這樣一來,既/
和/index.php
得到匹配。
有趣!這似乎解決了它。任何想法如何確保mod_dir後發生?或者是否有REQUEST_URI以外的其他變量會給我用戶在瀏覽器中看到的內容? – 2015-02-23 23:14:15
@MattFordham不知道是否有辦法(或者如果這是所需的東西)。這可能與訂單模塊加載有關(至少在Apache 2.2中)。 – 2015-02-23 23:27:11
你的mod_rewrite指令的其餘部分是什麼樣的? – 2015-02-23 21:39:32
除此之外,我只有一個RewriteRule。我加入了這個問題。 – 2015-02-23 21:44:01
這個htaccess位於哪裏,你如何測試這個規則不起作用? – anubhava 2015-02-23 21:49:00