Apache Rewrite規則如何匹配問號的方法

2022-09-11 23:15:31 字數 823 閱讀 9466

使用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...