日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

url重写(urlrewrite)的一些系统变量

發(fā)布時間:2023/12/2 windows 57 豆豆
生活随笔 收集整理的這篇文章主要介紹了 url重写(urlrewrite)的一些系统变量 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

學(xué)php也有3年了,一直對url重寫不是很了解,本學(xué)用到的話都是百度一下,再復(fù)制作簡單修改,一些變量的參數(shù)都不太了解什么意思,難得今天有時間,做個筆記吧!

1)可用的一些系統(tǒng)變量,在重寫條件和重寫規(guī)則里都可以使用,格式為 %{name_of_variable}

?

HTTP headers:connection & request:?server internals:date and time:specials:
HTTP_ACCEPT
HTTP_COOKIE
HTTP_FORWARDED
HTTP_HOST
HTTP_PROXY_CONNECTION
HTTP_REFERER
HTTP_USER_AGENT
AUTH_TYPE
CONN_REMOTE_ADDR
CONTEXT_PREFIX
CONTEXT_DOCUMENT_ROOT
IPV6
PATH_INFO
QUERY_STRING
REMOTE_ADDR
REMOTE_HOST
REMOTE_IDENT
REMOTE_PORT
REMOTE_USER
REQUEST_METHOD
SCRIPT_FILENAME
?
DOCUMENT_ROOT
SCRIPT_GROUP
SCRIPT_USER
SERVER_ADDR
SERVER_ADMIN
SERVER_NAME
SERVER_PORT
SERVER_PROTOCOL
SERVER_SOFTWARE
TIME_YEAR
TIME_MON
TIME_DAY
TIME_HOUR
TIME_MIN
TIME_SEC
TIME_WDAY
TIME
API_VERSION
CONN_REMOTE_ADDR
HTTPS
IS_SUBREQ
REMOTE_ADDR
REQUEST_FILENAME
REQUEST_SCHEME
REQUEST_URI
THE_REQUEST

?使用示例:

RewriteCond %{HTTP_REFERER} !abc.com [NC] RewriteCond %{REQUEST_URI} !logo.png [NC] RewriteRule \.(jpg|png|gif|jpeg)$ http://www.abc.com/logo.png [R,NC,L]

PS:具體每個變量是什么意思就不說了,看變量名一般也知道是什么意思,實在不知道就自己再查吧

?

2)參數(shù)變量(只列出常用的幾個,其他的請看 這里)

-d?  是否一個目錄

-f?   是否一個文件

-U   是否一條有效的鏈接

這個比較常用來做偽靜態(tài)時,判斷訪問鏈接是否一個真實目錄或一個真實文件,不對它們進行重寫(!是不等于的意思)

RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php?s=/$1 [QSA,PT,L]

?

3)比較運算符(用于重寫條件 RewriteCond)

字符串比較

?

=      等于

<      小于

>      大于

<=     小于等于

>=     ? 大于等于

?

整數(shù)比較

-eq     等于(equal)

-ge     大于等于(greater or equal)

-gt     大于(greater than)

-le     ?小于等于(less or equal)

-lt     ?小于(less than)

-ne     不等于(not equal)

?

4)RewriteBase 重寫的根目錄

默認重寫是從根目錄 / 開始的,但如果你的web目錄是在二維目錄里的,例如 /myapp/ 里的,這時候你要使用 urlrewrite的話是這樣的

RewriteRule "^/myapp/index\.html$" "/myapp/index.php"

這樣的話,是不是會很煩??這時候你就可以用RewriteBase了

RewriteBase "/myapp/" RewriteRule "^index\.html$" "index.php"

?

5)RewriteRule 后面的標識(flags)(同時只列出幾個常用的,其他的請看 這里)

[QSA]?     保留未重寫之前的鏈接的查詢參數(shù)

RewriteRule "/pages/(.+)" "/page.php?page=$1" [QSA]使用 [QSA] 標識, 一個類似 /pages/123?one=two 這樣的請求,會被重寫成 /page.php?page=123&one=two 這樣,如果沒有 [QSA] 標識, 一樣的請求,將會被重寫成 /page.php?page=123

?

[PT]?      使用這個標識,會讓系統(tǒng)遇到一些以pathinfo格式分隔的url,不當成一個目錄路徑來處理

例如:/home/article/detail/id/1.html默認地,url用/分隔的,是會被認為是目錄來處理的(home目錄下的article目錄下的detail目錄下的id目錄下的1.html文件)使用[PT]標識,就是告訴系統(tǒng),這就是條字符串,不是目錄,不要去找目錄

?

[L]      匹配的最后一條規(guī)則,意思就是如果匹配了這一條規(guī)則,就不用比較這一條規(guī)則后的規(guī)則是否匹配了,直接停掉就可以了

?

[NC]     匹配時忽略大小寫

?

[R]?      重定向,url防盜鏈或301跳轉(zhuǎn)等等會用到

PS:重定向時,想發(fā)出什么請求頭,就用R=狀態(tài)碼就可以了例如301重定向就是這樣寫的:[R=301,L]

?

6)正則怎么寫?

1、正則部分是不需要處理域名也處理不到域名的,重寫從根目錄(/)開始

#錯誤的 RewriteRule htt:\/\/www\.abc\.com\/index\.html http:\/\/www\.abc\.com\/index\.php [NC,L]#這個也是錯誤的 RewriteRule (.*)\/index\.html $1\/index\.php [NC,L]#正確的 RewriteRule index\.html index\.php [NC,L]

?

2、^和$

^和$是匹配開頭和結(jié)束的,不限制開頭和結(jié)束時,相當于模糊匹配

#這個是可以匹配到圖片文件鏈接,做防盜鏈的 RewriteRule \.(jpg|png|gif|jpeg)$ http://www.abc.com/logo.png [R,NC,L]#但下面這樣是不行的,圖片鏈接還有域名路徑和文件名呢,直接.jpg這樣肯定是匹配不上的 RewriteRule ^\.(jpg|png|gif|jpeg)$ http://www.abc.com/logo.png [R,NC,L]#下面這樣是這是可以的 RewriteRule ^(.+)\.(jpg|png|gif|jpeg)$ http://www.ot.com/logo.png [R,NC,L]

?

3、$1 $2 $3 ......??

$1 $2 這些點位符是替換首頁正則式匹配上的內(nèi)容的,一個括號()一個組

RewriteRule ^/article/(\d+)/(\d+)\.html$ index\.php/article/index/cat_id/$1/id/$2 [NC,L]

前面兩個(\d+)組,后面用$1 $2代替,再加一個組,就用$3代替,以此類推~

?

暫時就這樣吧,完。

轉(zhuǎn)載于:https://www.cnblogs.com/tujia/p/6277934.html

總結(jié)

以上是生活随笔為你收集整理的url重写(urlrewrite)的一些系统变量的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。