久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

nginx rewrite arg 帶問(wèn)號(hào)的地址轉(zhuǎn)發(fā)參數(shù)處理?Nginx重定向的參數(shù)問(wèn)題

 昵稱597197 2017-07-22
Nginx重定向的參數(shù)問(wèn)題

    在給某網(wǎng)站寫rewrite重定向規(guī)則時(shí),,碰到了這個(gè)關(guān)于重定向的參數(shù)處理問(wèn)題。默認(rèn)的情況下,,Nginx在進(jìn)行rewrite后都會(huì)自動(dòng)添加上舊地址中 的參數(shù)部分,而這對(duì)于重定向到的新地址來(lái)說(shuō)可能是多余。雖然這也不會(huì)對(duì)重定向的頁(yè)面顯示結(jié)果造成多少影響,,但當(dāng)你注意到新地址中包含有多余的 “?xxx=xxx”時(shí),心里總還是會(huì)覺(jué)得不爽,。而且可能影響到網(wǎng)站的搜索優(yōu)化SEO,。那么該如何來(lái)處理這部分的內(nèi)容呢?看了下面兩個(gè)簡(jiǎn)單的例子你就會(huì)明 白了,。

例如:
把http:///test.php?id=xxx 重定向到 http:///xxx.html
把我郁悶了好久,,最后在谷大神那里找到了一片文章解決了。

這是剛開(kāi)始的規(guī)則:
if ($query_string ~* "id=(\d+)$") {
        set $id $1;
        rewrite /art_list\.php /article/category-$id.html permanent;
        rewrite ^/goods\.php /goods/$id.html permanent;
        rewrite ^/category\.php /products/$id.html permanent;
        rewrite ^/child_cat\.php /category/$id.html  permanent;
        rewrite ^/art\.php /article/$id.html permanent;
        rewrite ^/art_list\.php /article/category-$id.html permanent;
        rewrite ^/artid\.php  /help/$id.html permanent;
        rewrite ^/article\.php /affiche/$id.html permanent;
}

發(fā)現(xiàn)問(wèn)題:
重定向的地址都是 xxx.html?id=xxx
最后我修改了參數(shù):
if ($query_string ~* "id=(\d+)$") {
        set $id $1;
        rewrite /art_list\.php /article/category-$id.html? permanent;
        rewrite ^/goods\.php /goods/$id.html? permanent;
        rewrite ^/category\.php /products/$id.html? permanent;
        rewrite ^/child_cat\.php /category/$id.html?  permanent;
        rewrite ^/art\.php /article/$id.html? permanent;
        rewrite ^/art_list\.php /article/category-$id.html? permanent;
        rewrite ^/artid\.php  /help/$id.html? permanent;
        rewrite ^/article\.php /affiche/$id.html? permanent;
}
結(jié)果正常了,。

    注意,,關(guān)鍵點(diǎn)就在于“?”這個(gè)尾綴,。重定向的目標(biāo)地址結(jié)尾處如果加了?號(hào),則不會(huì)再轉(zhuǎn)發(fā)傳遞過(guò)來(lái)原地址的問(wèn)號(hào)?后面的參數(shù)那部分,。
    假如又想保留某個(gè)特定的參數(shù),,那又該如何呢?可以利用Nginx本身就帶有的$arg_PARAMETER參數(shù)自行補(bǔ)充來(lái)實(shí)現(xiàn),。
例如:
把http:///test.php?para=xxx&p=xx 重寫向到 http:///new.php?p=xx
可以寫成:rewrite  ^/test.php  /new.php?p=$arg_p?  permanent;

[全文結(jié)束]

參考文章:
    原始的動(dòng)態(tài)頁(yè)面需要給個(gè)301永久重定向到靜態(tài)頁(yè)面上,,以告訴搜索引擎將原始的頁(yè)面的權(quán)重轉(zhuǎn)到新的靜態(tài)頁(yè)面下。
if ($query_string ~* "id=(\d+)$") {
        set $id $1;
        rewrite ^/goods\.php /goods/$id.html permanent;
}
    這樣重定向后發(fā)現(xiàn) 當(dāng)輸入/goods.php?id=254訪問(wèn)的時(shí)候會(huì)跳轉(zhuǎn)到/goods/254.html?id=254下,,
    后面看見(jiàn)搜索引擎的收錄地址也添加了后面不必要的參數(shù),,必須去掉后面參數(shù)。那該怎么來(lái)處理呢,?
例如:
把http://examplecom/test.php?para=xxx 重定向到http://examplecom/new
若按照默認(rèn)的寫法:rewrite ^/test.php(.*) /new permanent;
重定向后的結(jié)果是:http://examplecom/new?para=xxx
如果改寫成:rewrite ^/test.php(.*) /new? permanent;
那結(jié)果就是:http://examplecom/new
    所以,,關(guān)鍵點(diǎn)就在于“?”這個(gè)尾綴,。假如又想保留某個(gè)特定的參數(shù),,那又該如何呢?可以利用Nginx本身就帶有的$arg_PARAMETER參數(shù)來(lái)實(shí)現(xiàn),。
例如:
    把http://examplecom/test.php?para=xxx&p=xx 重寫向到http://examplecom/new?p=xx
    可以寫成:rewrite  ^/test.php  /new?p=$arg_p?  permanent;
來(lái)源:http://www./blog/b/15359/
PS:關(guān)于判斷獲取參數(shù)
if ($query_string ~* "appId=(\d+)$") {
  set $id $1;
  rewrite ^/show/index/.*   /rewrite/htmlrewrite/$id.html;
}

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn),。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多