最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Apache mod_rewrite中的REQUEST_URI使用實例

 更新時間:2015年01月27日 10:03:52   投稿:junjie  
這篇文章主要介紹了Apache mod_rewrite中的REQUEST_URI使用實例,本文使用一個實例講解如何使用REQUEST_URI,需要的朋友可以參考下

如下規(guī)則:

復(fù)制代碼 代碼如下:

RewriteEngine on
# sitemap index xml rewrite
RewriteRule ^sitemap_([a-zA-Z0-9_\-]+)\.xml$ /sitemap/$1
# redirected all invalid request the the index bootstrap
RewriteRule !\.(htm|txt|xml|css|js|swf|gif|jpg|png|ico)$ index.php [L]

假設(shè)訪問 sitemap_index.xml ,當(dāng)經(jīng)過兩次RewriteRule之后,傳給bootstrap程序 index.php 的 $_SERVER['REQUEST_URI'] 值仍然是 /sitemap_index.xml ,但實際上希望是 /sitemap/index ,這樣 index.php 才能正確的進行 url route 。

要達到這個目的,有兩個方法。

第一種方式,配合 mod_proxy ,將第一條重寫規(guī)則改為

復(fù)制代碼 代碼如下:

# sitemap index xml rewrite
RewriteRule ^sitemap_([a-zA-Z0-9_\-]+)\.xml$ /sitemap/$1 [P,L]

這樣將在內(nèi)部產(chǎn)生一個新的URL請求, REQUEST_URI 的值也就變成了新的 /sitemap/index 。但這種方法制造了額外的一次 http 請求。

第二種方法,將第一條規(guī)則改為

復(fù)制代碼 代碼如下:

# sitemap index xml rewrite
RewriteRule ^sitemap_([a-zA-Z0-9_\-]+)\.xml$ /sitemap/$1 [E=REQUEST_URI:/sitemap/$1]

或者
復(fù)制代碼 代碼如下:

# sitemap index xml rewrite
RewriteRule ^sitemap_([a-zA-Z0-9_\-]+)\.xml$ index.php [E=REQUEST_URI:/sitemap/$1,L]

然后通過 $_SERVER['REDIRECT_REQUEST_URI'] 變量得到 值 /sitemap/index (注意使用 E 設(shè)置環(huán)境變量的時候,mod_rewrite 自動給變量加上 REDIRECT_ 前綴)。

有趣的是在 Rewrite 的過程中 REQUEST_URI 的值始終保持是原始的請求URI,但在 mod_setenvif 中提供的 SetEnvIf / SetEnvIfNoCase 中所使用的 Request_URI 屬性得到的卻是經(jīng)過 rewrite 之后的地址而非原始 GET/POST 中的 URI。

所以如果在 httpd.conf / httpd-vhosts.conf 中想使用

復(fù)制代碼 代碼如下:

SetEnvIfNoCase Request_URI "sitemap" ...

來針對 sitemap 設(shè)置環(huán)境變量的話是不起作用的,因為這時候傳給 SetEnvIfNoCase 進行判斷的 Request_URI 是 index.php 而不是 sitemap_index.xml 或 sitemap/index 。想要得到原始的 Request_URI 信息就必須在 rewrite 規(guī)則的最開始進行保存,比如在 rewrite 規(guī)則開頭加入
復(fù)制代碼 代碼如下:

SetEnvIfNoCase Request_URI "(^/sitemap_.*\.xml)" MY_REQUEST_URI_BF_REWRITE=$1

然后在需要的地方使用
復(fù)制代碼 代碼如下:

SetEnvIfNoCase MY_REQUEST_URI_BF_REWRITE "sitemap" ...

相關(guān)文章

  • 詳解ssh免密碼登錄配置方法(圖示加命令)

    詳解ssh免密碼登錄配置方法(圖示加命令)

    這篇文章主要介紹了詳解ssh免密碼登錄配置方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • 輕松搞定VIM高亮NGINX配置文件的方法

    輕松搞定VIM高亮NGINX配置文件的方法

    在使用vim在寫東西的時候,如果有語法高亮顯示就會方便很多,之前給大家介紹了很多關(guān)于vim高亮的文章,那這篇文章主要給大家介紹了如何輕松搞定VIM高亮NGINX配置文件的方法,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-10-10
  • 在Linux中將用戶添加到特定組的四種方法

    在Linux中將用戶添加到特定組的四種方法

    本文詳細介紹了在Linux系統(tǒng)中將用戶添加到特定組的四種方法:使用`usermod`命令、`gpasswd`命令、Shell腳本以及手動編輯`/etc/group`文件,通過這些方法,可以方便地管理用戶的主要組和次要組,實現(xiàn)用戶權(quán)限的靈活配置,需要的朋友可以參考下
    2025-02-02
  • 簡單測試Apache是如何完成負載均衡策略配置

    簡單測試Apache是如何完成負載均衡策略配置

    公司的系統(tǒng)在最初設(shè)計的時候就已經(jīng)考慮到了負載均衡的規(guī)劃,此次 就是對負載均衡的一個簡單測試
    2014-01-01
  • CentOS8中的nmcli使用詳解

    CentOS8中的nmcli使用詳解

    這篇文章主要介紹了CentOS8的nmcli使用,基于RHEL8/CentOS8的nmcli常見命令使用,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-09-09
  • Linux下如何檢查網(wǎng)卡bonding狀態(tài)和切換主備網(wǎng)卡

    Linux下如何檢查網(wǎng)卡bonding狀態(tài)和切換主備網(wǎng)卡

    這篇文章主要介紹了Linux下如何檢查網(wǎng)卡bonding狀態(tài)和切換主備網(wǎng)卡問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • 解決Linux中nohup.out日志過大問題

    解決Linux中nohup.out日志過大問題

    這篇文章主要介紹了解決Linux中nohup.out日志過大問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • centos7.2搭建nginx的web服務(wù)器部署uniapp項目

    centos7.2搭建nginx的web服務(wù)器部署uniapp項目

    這篇文章主要介紹了centos7.2搭建nginx的web服務(wù)器部署uniapp項目,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-10-10
  • 談一談Linux系統(tǒng)重要的子目錄問題

    談一談Linux系統(tǒng)重要的子目錄問題

    這篇文章主要介紹了Linux系統(tǒng)重要的子目錄問題,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友參考下吧
    2018-09-09
  • 詳解虛擬機中CentOS 7 網(wǎng)絡(luò)和ssh的配置

    詳解虛擬機中CentOS 7 網(wǎng)絡(luò)和ssh的配置

    這篇文章主要介紹了詳解虛擬機中CentOS 7 網(wǎng)絡(luò)和ssh的配置,具有一定的參考價值,感興趣的小伙伴們可以參考一下。
    2017-03-03

最新評論

漳浦县| 徐汇区| 繁昌县| 莱西市| 平安县| 临漳县| 建德市| 武宁县| 黄大仙区| 灌南县| 铁岭县| 灵寿县| 临泽县| 乐平市| 班玛县| 光山县| 彰武县| 务川| 米易县| 淮滨县| 靖边县| 淮滨县| 姚安县| 密山市| 高要市| 印江| 宁阳县| 仪陇县| 历史| 铁岭市| 哈尔滨市| 孟津县| 寿光市| 巴塘县| 上杭县| 蚌埠市| 调兵山市| 光泽县| 西盟| 腾冲县| 北海市|