由於**需要做乙個英文站點,訪問路徑想用www.mysite.com/en/這樣開頭的就是英文站點,由於英文站點和中文站只是模板的說明文字變成英文,所以需要重定向一下這個位址,實現
這樣的跳轉,同時瀏覽器的url不變
之前一直是用的別人的rewrite規則修改下就ok的。但是之前的rewrite規則沒有以上類似的跳轉,只好google~
照著寫了個規則
rewriterule ^en/(.*?)$ /$1\?en=1 [nc]
但是這樣的規則對於已有引數的跳轉錯誤
,引數資訊沒了~繼續看apache的mod_rewrite的文件,名詞相對來說比較晦澀,不是那麼好懂,幸好google了之後看到引數資訊是在這個變數裡的%,於是修改為
rewriterule ^en/(.*?)$ /$1\?%&en=1 [nc]
這樣基本上是可以了,不過當沒有引數的時候後邊的引數變成了?&en=1這個相當的不好看啊,
然後注意到了rewritecond 這個指令,意思就是rewrite condition,重寫條件
rewritecond % -s [nc]
rewriterule ^en/(.*?)$ /$1\?en=1 [nc]
rewritecond % !-s [nc]
rewriterule ^en/(.*?)$ /$1\?%&en=1 [nc]
照著寫成這樣,不過這個-s !-s 很是詭異啊,我的理解是-s代表了條件是為空,但是第乙個條件在query_string為空的時候沒有執行,依然執行了!-s後的重寫語句,奇怪了~不過暫時先這樣,繼續弄新英文站吧~
apache url路由配置重寫
1.apache rewrite的主要功能 就是實現url的跳轉和隱藏真實位址,基於perl語言的正規表示式規範。平時幫助我們實現擬靜態,擬目錄,網域名稱跳轉,防止盜鏈等 2.apache rewrite的配置 apache下的rewrite配置主要有兩種,一種是針對整個apache伺服器的配置,此...
apache url路由配置重寫
1.apache rewrite的主要功能 就是實現url的跳轉和隱藏真實位址,基於perl語言的正規表示式規範。平時幫助我們實現擬靜態,擬目錄,網域名稱跳轉,防止盜鏈等 2.apache rewrite的配置 apache下的rewrite配置主要有兩種,一種是針對整個apache伺服器的配置,此...
apache url路由配置重寫
最近複習了一下apache rewrite url重定向功能,有個專案用到了.htaccess,簡單的幾行 是看不怎麼明白,於是複習了一下。1.apache rewrite的主要功能 就是實現url的跳轉和隱藏真實位址,基於perl語言的正規表示式規範。平時幫助我們實現擬靜態,擬目錄,網域名稱跳轉,...