實現把使用者輸a位址跳到b位址,就是跳轉的功能。
原先用我用最常的方法實現如:rewriterule ^productview.jsp?lclassid=200$ goods.php?id=3 [l]
看上去是沒有問題的,但在位址上輸入跳轉不了。
後來網上查了一下資料如下:
規則:文字
. 任意乙個單字元
[chars] 字元類: "chars"中的任意乙個字元
[^chars] 字元類: 不在"chars"中的字元
text1|text2 選擇: text1 或 text2
量詞? 前面的字元出現 0 或 1 次
* 前面的字元出現 0 或 n 次(n > 0)
+ 前面的字元出現 1 或 n 次(n > 1
原來這樣:?號把前面的p也作為引數了,p?(\?)就變成了$1,當在位址中輸入 可實現跳轉,但這顯然不是需求那樣的.
本來都想放棄用重寫了,在網上又找了一下終於找到了,功夫不負有心人啊,
解決方法如下:
rewritecond % ^lclassid=200$
rewriterule ^productview\.jsp$ goods\.php\?id=3 [l]
我找到的相關資料:
把 /abc?id=123 => /def.php?id=123 的寫法:
rewriteengine on
rewritecond % ^id=(.+)$
rewriterule ^/abc$ /def.php?sid=%1 [l]
rewriterule 不會去匹配url中?(問號)後面的字串,需要用rewritecond來匹配
****************************************==
ps.上面整篇內容迷迷糊糊,這裡再附個說到點子上的例子出來:
rewriteengine on
rewritebase /
rewritecond % ^$
rewriterule ^(.*)$ index.php?path=$1 [l,ne]
rewritecond % !^$
rewriterule ^(.*)$ index.php?path=/$1\?% [l,ne]
這個例子用到兩個條件,即是有條件執行重寫,第一條件是當url沒有引數,即?問號後面沒有內容時,執行重寫並結束匹配;第二個條件反過來了,就是url的「?」號後面帶著引數,然後重寫時把問號後面的也傳遞過去(這裡是重點!)。
rewriteengine onrewritecond % ^(.*)$
rewriterule ^topic-(.+)\.html$ portal.php?mod=topic&topic=$1&%1
rewritecond % ^(.*)$
rewriterule ^article-([0-9]+)-([0-9]+)\.html$ portal.php?mod=view&aid=$1&page=$2&%1
rewritecond % ^(.*)$
rewriterule ^forum-(\w+)-([0-9]+)\.html$ forum.php?mod=forumdisplay&fid=$1&page=$2&%1
rewritecond % ^tid=([0-9]+)$
rewriterule ^read.php$ forum.php?mod=viewthread&tid=$1&extra=page%3d1&page=1
[qsa]
rewritecond % ^tid=([0-9]+)&page=([0-9]*)$
rewriterule ^read.php$ forum.php?mod=viewthread&tid=$1&extra=page%3d1&page=$2
[qsa]
rewritecond % ^(.*)$
rewriterule ^thread-([0-9]+)-([0-9]+)-([0-9]+)\.html$ forum.php?mod=viewthread&tid=$1&extra=page\%3d$3&page=$2&%1
rewritecond % ^(.*)$
rewriterule ^group-([0-9]+)-([0-9]+)\.html$ forum.php?mod=group&fid=$1&page=$2&%1
rewritecond % ^(.*)$
rewriterule ^space-(username|uid)-(.+)\.html$ home.php?mod=space&$1=$2&%1
rewritecond % ^(.*)$
rewriterule ^blog-([0-9]+)-([0-9]+)\.html$ home.php?mod=space&uid=$1&do=blog&id=$2&%1
rewritecond % ^(.*)$
rewriterule ^archiver/(fid|tid)-([0-9]+)\.html$ archiver/index.php?action=$1&value=$2&%1
Apache rewrite規則寫法
1 r code force redirect 強制外部重定向 強制在替代字串加上http thishost thisport 字首重定向到外部的url.如果code不指定,將用預設的302 http狀態碼。2 f force url to be forbidden 禁用url,返回403http狀...
Apache Rewrite 靜態配置
1 mod rewrite 簡介和配置 rewirte主要的功能就是實現url的跳轉和隱藏真實位址,基於perl語言的正規表示式規範。平時幫助我們實現擬靜態,擬目錄,網域名稱跳轉,防止盜鏈等 如乙個普通訪問位址為 php100.php?id 2 可以轉成 php100 2.html 或轉成 php1...
Apache Rewrite 常用設定說明
例子 rewriteengine on 開啟引擎 rewriterule test.html test.php l rewriterule test.html?tianqi.php?s1 s2 s3 qsa,l 用於多個引數的情況 rewriterule tianqi 0 9 html tianqi...