apache rewrite_mod 經典疑問解答

來源:互聯網
上載者:User

標籤:log   file   程式   自動   檔案   遍曆   window   127.0.0.1   color   

1.RewriteRule ^(com\/.*)$ index.php?do=$1

問:上面的規則匹配運算式 "^(.*)$" 匹配的內容是什麼

答:匹配內容是URI
網站目錄:/d/www
URL:http://127.0.0.1/admin/index.php
對應本地檔案:/d/www/admin/index.php,如果是windows檔案系統,由於不區分大小寫,如果網站下的目錄是Admin,那麼這裡的檔案地址會變成:/d/www/Admin/index.php,下面的URI也會跟著變。
URI:admin/index.php,這裡的URI是從檔案系統去掉網站目錄的部分與“%{REQUEST_URI}”有區別的。如果網站下的目錄是Admin,URI=Admin/index.php

%{REQUEST_URI}:/admin/index.php,是RUL去掉網域名稱的部分

%{REQUEST_FILENAME}:URL對應本地檔案,這裡有幾點要注意的地方:
1.windows檔案系統下,會自動根據本地的檔案夾大小寫進行轉換
2.FILENAME會自動去掉多餘的部分,如/d/www/admin/setting/index.php,如果admin是個空檔案夾,裡面沒有任何東西,這裡的%{REQUEST_FILENAME}=/d/www/admin/setting,估計apache的檔案系統是先從頂級目錄往下遍曆,當某個目錄不存時,則從這個不存在的目錄位址中斷。


2.無限迴圈導致報錯

重寫規則中有多條RewriteRule,某條被匹配到的RewriteRule標籤中加了[L],表示停止分析以後規則的重寫,為什麼後面的規則還是會運行,

答:重寫流程中,有任何一條RewriteRule被執行,都會用新的URI重複整個流程,直到整個流程都沒有發生重寫才結束rewrite程式。

 

apache rewrite_mod 經典疑問解答

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.