使用mod_rewrite,什麼RewriteRule(s)會使以下兩個示例正常工作?用等號分隔的URL項重寫爲查詢字符串
實施例#1(一個術語):
http://example.net/dir/thanks
-to-
http://example.net/dir/index.php?a=thanks
實施例#2(兩個術語):
http://example.net/dir/thanks=stackoverflow
-to-
http://example.net/dir/index.php?a=thanks&b=stackoverflow
注: .htaccess文件位於域根目錄的/ dir /之外。
我已經得到接近與此:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]*)=([^/]*)/?$ index.php?a=$1&b=$2 [L]
然而,與實施例#1尾部的 「=」 是必需的(我想避免)工作。我試過將「=」改爲「=?」在正則表達式使其可選,但它然後工作例如#1它失敗,例如#2。
謝謝你對我的問題的任何考慮。我是mod_rewrite和正則表達式的新手,真的很難過。
謝謝!你的兩個例子在這裏也很棒。我真的很感激詳細的解決方案;他們幫助我提高了對mod_rewrite的理解。在我的問題投擲飛鏢幾小時後,我現在看到我要去哪裏錯了,謝謝你的回答。 – kiteman