国产欧美日韩第一页|日本一二三不卡视频|在线精品小视频,亚洲第一免费播放区,metcn人体亚洲一区,亚洲精品午夜视频

Apache和Nginx設(shè)置偽靜態(tài)(URL Rewrite)的方法

2019-04-26 06:44:53 1690

在Apache中有兩種方法配置,一是通過httpd.conf文件,二是通過.htaccess文件。


使用 httpd.conf 來配置 rewrite 策略。


要使用 httpd.conf 文件來設(shè)置偽靜態(tài)策略,我們可以直接在 httpd.conf 中寫入如下代碼,如果您的網(wǎng)站是配置在 VirtualHost 中,則將這段代碼加到對(duì)應(yīng)的。


使用.htaccess來配置rewrite策略。


檢查httpd.conf中的:


RewriteEngine on

RewriteRule ^(.*)list-([0-9]+)-([0-9]+)\.html$ $1list.php?page=$2&id=$3

復(fù)制代碼保存后重啟httpd服務(wù)即可生效。


常見問題: Q:為何都按上面設(shè)置了缺還是無法靜態(tài)化? A:很有可能是因?yàn)閯e的目錄設(shè)置項(xiàng)覆蓋了。


Nginx:


Nginx下設(shè)置偽靜態(tài)方法與Apache差不多,直接在nginx.conf (或者在對(duì)應(yīng)的*.conf) 中找到需設(shè)置偽靜態(tài)規(guī)則的服務(wù)器對(duì)應(yīng)字段,在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服務(wù)即可生效!


正則表達(dá)式匹配


就用上面的例子中的偽靜態(tài)策略來簡(jiǎn)單解釋下正則表達(dá)式在配置的作用:

策略:RewriteRule ^(.*)list-([0-9]+)-([0-9]+)\.html$ $1list.php?page=$2&id=$3


請(qǐng)求路徑:http://www.tjdsmy.cn/list-123-456.html


本策略分成兩段,第一段是使用正則表達(dá)式去匹配請(qǐng)求訪問的路徑,第二段是將匹配后的參數(shù)轉(zhuǎn)化為真實(shí)訪問的路徑。策略執(zhí)行時(shí):^(.*)list-([0-9]+)-([0-9]+)\.html$ 與 /list-123-456.html這個(gè)字符串進(jìn)行匹配:


^和$字符分別代表了匹配輸入字符串的開始和結(jié)束


()中的匹配到的內(nèi)容會(huì)被按順序分配到變量$1 $2 $3中


.*匹配任意字符串,且長(zhǎng)度從0個(gè)到多個(gè),故$1值為/


[0-9]+匹配字符0-9,長(zhǎng)度1個(gè)到多個(gè),故$2和$3分別是123和456


所以最后真實(shí)訪問的動(dòng)態(tài)地址為/list.php?page=123&id=456


上面只是介紹了基本的配置策略,其實(shí)這個(gè)rewrite規(guī)則還有非常多的玩法,例如使用RewriteCond進(jìn)行域名層面的重寫跳轉(zhuǎn)。


提交成功!非常感謝您的反饋,我們會(huì)繼續(xù)努力做到更好!

這條文檔是否有幫助解決問題?

非常抱歉未能幫助到您。為了給您提供更好的服務(wù),我們很需要您進(jìn)一步的反饋信息:

在文檔使用中是否遇到以下問題: