使用php語言開發了動態**,**是動態的比如:view.php?aid=1。這樣的形式是不利於搜尋引擎seo優化的。
怎麼辦呢?一般的辦法是使用偽靜態rewrite規則,將html靜態格式的**,通過rewrite規則定位到動態**上。
方法如下:
1、php編寫網頁**時,將鏈結寫成html格式,比如view1.html
2、配置rewrite規則,以apache為例 rewriterule /^view(.+).html$ /view.php?aid=$1
如果遇到view1.html?aid=1這樣的形式,需要把它定向到 view.php?aid=1
這個用 rewriterule 怎麼寫啊?
可以寫成這樣嗎? rewriterule /^view(.+).html?aid=(.+)$ /view.php?aid=$2
測試了,這樣的rewriterule規則達不到效果。
為什麼呢?
搜尋了rewriterule規則
文字. 任意乙個單字元
[chars] 字元類: "chars"中的任意乙個字元
[^chars] 字元類: 不在"chars"中的字元
text1|text2 選擇: text1 或 text2
量詞? 前面的字元出現 0 或 1 次
* 前面的字元出現 0 或 n 次(n > 0)
+ 前面的字元出現 1 或 n 次(n >
?號把前面的字元作為了引數,因此不能直接匹配?。 rewrite如何匹配?號後字元呢,需要用rewritecond來匹配
可以使用:
rewritecond % ^tid=(.+)
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規則實現白名單
需求 六個檔案的入口,其他都重定向到index 自己的思路 正則找出不是六個檔案的url的模式,進行過濾。對比同事的結果,自己思路的問題 1.想找出所有不符合規則的,越想越多,無法下手。程式設計客棧 思路錯誤,應該 制www.cppcns.com定白名單,2.概念錯誤,弄錯 request uri ...
Apache Rewrite 靜態配置
1 mod rewrite 簡介和配置 rewirte主要的功能就是實現url的跳轉和隱藏真實位址,基於perl語言的正規表示式規範。平時幫助我們實現擬靜態,擬目錄,網域名稱跳轉,防止盜鏈等 如乙個普通訪問位址為 php100.php?id 2 可以轉成 php100 2.html 或轉成 php1...