URL重寫(rewrite)的具體實現與異常問題解決

amadan發表於2021-09-09
URL重寫

可以透過URL重寫隱藏應用的入口檔案index.php(也可以是其它的入口檔案,但URL重寫通常只能設定一個入口檔案),實現方法是修改對應的websever配置。

重點
  • 如果有異常,一般是配置規則寫錯了
  • 修改完配置,需要重啟才能生效,每次修改記得重啟。
實現

下面提供三種具體的實現方法,一般情況下選擇自己對應那一種的webserver配置修改即可。

[ Apache ]

  • httpd.conf配置檔案中載入了mod_rewrite.so模組
  • AllowOverride None 將None改為 All
  • 把下面的內容儲存為.htaccess檔案放到應用入口檔案的同級目錄下

  Options +FollowSymlinks -Multiviews
  RewriteEngine On

  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteCond %{REQUEST_FILENAME} !-f
  #你定義的 匹配url(.*)  與 接收重寫的地址index.php/$1
  RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]

[ IIS ]

  • 伺服器環境支援ISAPI_Rewrite的話,可以配置httpd.ini檔案,新增此內容:RewriteRule (.*)$ /index.php/$1 [I]

在IIS的高版本下面可以配置web.Config,在中間新增rewrite節點:


 #你定義的規則名
 
 #你定義的 匹配url(.*) 
 
# 定義的接收重寫的地址index.php
 

[ Nginx ]

  • Nginx的偽靜態方法設定如下,其中youdomain是應用入口檔案的同級目錄。
location /youdomain/ {
    if (!-e $request_filename){
        rewrite  ^/youdomain/(.*)$  /youdomain/index.php/$1  last;
    }
}

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/2310/viewspace-2812975/,如需轉載,請註明出處,否則將追究法律責任。

相關文章