您好,登錄后才能下訂單哦!
apache偽靜態通用規則都有哪些?針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
apache偽靜態規則
1、簡單的重定向規則
RewriteEngine On //啟動規則 RewriteBase / //根目錄啟動偽靜態 RewriteRule ^index/$ index.php //訪問index/ 那么就是訪問index.php RewriteRule ^register/$ /s_youka/register.html //訪問register 就是訪問/s_youka/register.html
2、稍微復雜的規則
RewriteEngine on RewriteRule ^(.*)list-([0-9]+)-([0-9]+)\.html$ $1list.php?page=$1&id=$2 //后面的 $1 $2 對應前面的()內的代碼 其他的是正則規則 //^代表開頭$代表結束 [0-9]+ 是多個0到9之間的數字 \是轉義后面的.
3、精準的規則
/type.php?typeid=* –> /type*.html /type.php?typeid=*&page=* –> /type*page*.html RewriteRule ^/type([0-9]+).html$ /type.php?typeid=$1 [PT] RewriteRule ^/type([0-9]+)page([0-9]+).html$ /type.php?typeid=$1&page=$2 [PT] //重點介紹下PT 交給下一條處理
1) R[=code](force redirect) 強制外部重定向。強制在替代字符串加上http://thishost[:thisport]/前綴重定向到外部的URL.如果code不指定,將用缺省的302 HTTP狀態碼。
2) F(force URL to be forbidden)禁用URL,返回403HTTP狀態碼。
3) G(force URL to be gone) 強制URL為GONE,返回410HTTP狀態碼。
4) P(force proxy) 強制使用代理轉發。
5) L(last rule) 表明當前規則是最后一條規則,停止分析以后規則的重寫。
6) N(next round) 重新從第一條規則開始運行重寫過程。
7) C(chained with next rule) 與下一條規則關聯。如果規則匹配則正常處理,該標志無效,如果不匹配,那么下面所有關聯的規則都跳過。
8) T=MIME-type(force MIME type) 強制MIME類型
9) NS (used only if no internal sub-request) 只用于不是內部子請求
10) NC(no case) 不區分大小寫
11) QSA(query string append) 追加請求字符串
12) NE(no URI escaping of output) 不在輸出轉義特殊字符
例如:RewriteRule /foo/(.*) /bar?arg=P1%3d$1 [R,NE] 將能正確的將/foo/zoo轉換成/bar?arg=P1=zoo
13) PT(pass through to next handler) 傳遞給下一個處理
例如:
RewriteRule ^/abc(.*) /def$1 [PT] # 將會交給/def規則處理 Alias /def /ghi
14) S=num(skip next rule(s)) 跳過num條規則
15) E=VAR:VAL(set environment variable) 設置環境變量
4、discuz3x的規則
RewriteEngine On //開啟 RewriteBase / //當前根目錄 RewriteCond %{QUERY_STRING} ^(.*)$ //定義了規則生效的條件-查詢字符串 RewriteRule ^topic-(.+)\.html$ portal.php?mod=topic&topic=$1&%1 //topic-開頭 .htm后綴 實際上市訪問了 后面的地址
5、nginx類似
Nginx下設置偽靜態方法與Apache差不多,直接在nginx.conf (或者在對應的*.conf) 中找到需設置偽靜態規則的服務器對應字段,在server{ location/{ } }中添加以下代碼:
server { listen 80 default_server; server_name _; location / { root /usr/share/nginx/html; index index.html index.htm; rewrite ^(.*)list-([0-9]+)-([0-9]+)\.html$ $1list.php?page=$2&id=$3; } }
添加后重啟Nginx服務即可生效!
關于apache偽靜態通用規則都有哪些問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。