2009-12-06 54 views
1

我想設置一個'默認'重寫規則來捕捉任何與先前重寫條目不匹配的東西。我已經試過這樣:設置默認的Apache RewriteRule條目

RewriteRule ^(.*)/?$ index.php?url=$1 [L] 

但返回的輸出是:

url = index.php 

理想的情況我想是附加的所有GET值「URL」所以他們將被保存到我的網絡日誌。任何人有任何建議如何解決這個問題?

回答

3

省略正則表達式不必要的括號時,您可以:

RewriteRule .* index.php?url=$0 [L] 

如果你想排除「index.php」:

RewriteRule ^(?!index\.php).* index.php?url=$0 [L] 
+0

很好,謝謝你們! – Spoonface 2009-12-06 14:10:20

+0

這對Apache 1.x不起作用。 – Gumbo 2009-12-06 14:19:59

+0

Apache 1.x不使用PCRE庫。 – Geert 2009-12-06 18:42:29

3

你需要排除的規則的目的:

RewriteCond $1 !=index.php 
RewriteRule ^(.*)/?$ index.php?url=$1 [L] 
1

嘗試刪除斜槓:

RewriteRule ^(.*)$ index.php?url=$1 [L]