我只是在學習mod_rewrite和正則表達式的東西,我想要做的是將任何名稱的變量,包括任意數量的變量和值傳遞給腳本,並將它們轉發給不同的腳本。mod_rewrite可以保留雙斜槓嗎?
這裏是我到目前爲止有:
RewriteEngine on
RewriteRule ^script\$(.*[\])? anotherscript?ip=%{REMOTE_ADDR}&$1 [L]
這一切似乎除了我傳遞的參數是一個工作是一個URL和http後//://總是被剝離下來以一個斜線。
例如,我做
腳本$ URL = http://www.stackoverflow.com
然後將其重定向到:
anotherscript IP = 127.0.0.1 & URL = HTTP:/www.stackoverflow.com
和單斜槓上的第二個腳本扼流圈。
我意識到,保留雙斜槓與人們通常用mod_rewrite做的事完全相反。有沒有辦法保留雙斜線?
編輯:在Gumbo的幫助下找到解決方案。
RewriteCond %{THE_REQUEST} ^GET\ (.*)/script\$([^\s]+)
RewriteRule ^script\$(.*) anotherscript?ip=%{REMOTE_ADDR}&%2 [L]
我不得不補充說,(*)在/腳本前面的的RewriteCond,一旦我這樣做,它擺脫了404個錯誤,然後它只是一個通過傳遞匹配的問題。
這是導致404找不到 – nerdabilly 2009-05-20 18:49:52
希望你沒有忘記強制性`RewriteEngine敘述on`。 – Gumbo 2009-05-20 19:13:48