(四)重定向的標誌 RewriteRule R C L NE NC G QSA 語法說明
阿新 • • 發佈:2018-12-31
RewriteRule 模式匹配 替換的URL [flags]
- 模式匹配支援Perl格式的正則表示式,和rewrite的變數
- 替換的URL支援模式匹配的結果和rewrite變數
- 多個flag用逗號隔開[R=302,c]
RewriteRule R flag 說明
- 強制外部重定向,後面可以加301或302跳轉,不加預設302
- 301永久重定向 對於搜尋引擎 seo評分 舊的地址會給到新的地址
- 302臨時重定向 新的地址新的seo評分
- 所以我們一般使用301
教程部分
測試環境配好 不會改的看前面教程
AllowOverride All #RewriteEngine On #RewriteRule ^(.*)\.html& $1.php LogLevel alert rewrite:trace8
修改根目錄下.htaccess的檔案 建立方法前面也有教程
RewriteEngine on
RewriteRule ^(.*)\.html$ /$1.php [R=301]
細心的朋友可能會發現 rule 正則 替換內容 這裡多了一個/
使用R flag的時候 要記得加/
RewriteRule C flag 說明
連結下一規則 (必須保證第一條規則匹配 才能進入下一條的規則匹配)
RewriteEngine on #RewriteRule ^(.*)\.html$ /$1.php [R=301] RewriteRule ^/?(.*)\.htm$ /$1.html [C] RewriteRule ^/?(.*)\.html$ /$1.php
與下一條規則成為一個整體,如果這一條不匹配,下一條也不進入了
就是直接訪問 1.html的時候不會生效 訪問1.htm的時候可以訪問到1.php
RewriteRule L flag 說明
結尾規則,立即停止重寫操作,並不在應用其他重寫規則
RewriteEngine on
RewriteRule ^(.*) first.php?url=$1 [L]
RewriteRule ^(.*) second.php?url=$1
RewriteRule NE flag 說明
不對URL中的特殊字元進行hexcode轉碼
位址列上預設的#會轉換成%23
修改後
RewriteEngine on
RewriteRule ^(.*)\.html /index.html#$1 [R,NE]
#號將不做變換
RewriteRule NC flag 說明
不區分大小寫
RewriteEngine on
RewriteRule ^test/(.*)\.htm /tmp/$1.htm [NC]
此刻就算訪問Test也可以定向到tmp
RewriteRule G flag 說明
請求的網頁已經失效了(GONE)
Apache 會返回410錯誤
RewriteEngine on
RewriteRule ^test/.*$ - [G]
RewriteRule QSA flag 說明
用於在URL中擷取查詢字串
RewriteEngine on
RewriteRule ^per/(.*)$ /per.php?url=$1 [R,QSA]
解釋 訪問pre/index.php?name=xiaoming 會跳轉到per.php?url=index.php?name=xiaoming
之前鄙人不才寫了個 從任意介面跳轉登入後 再返回任意介面的php程式碼
https://blog.csdn.net/mp624183768/article/details/85068962