nginx通過rewrite方式處理路由
首先需要在nginx.conf中增加一行,具體如圖1所示
include /home/www/.htaccess;這一行,就說明你要讓該檔案中的rewrite配置生效
然後我們編輯.htaccess
具體程式碼
if (!-e $request_filename){
rewrite ^/(.*)$ /webroot/index.php?_ca_=$1 last;
}
這幾句話的意思就是讓所有找不到的檔案都作為url引數,傳遞給index.php,這個是mvc框架程式的唯一入口
然後要記得重新載入nginx配置檔案,具體命令 /etc/init.d/nginx reload
有人說可以直接使用service nginx restart這樣的命令來讓配置檔案生效,這樣是不好的的,因為restart實際上包含了停止nginx服務以及開啟服務兩個步驟,
會導致使用者訪問網站時沒有響應,而reload命令則沒有這種問題。
然後我們寫程式可以測試一下
index.php檔案內容如下:
echo "arrive here,111<br/>";
var_dump($_GET);
echo "<br/>";
phpinfo();
最後我們訪問一下不存在的檔案 http://192.168.1.111/a.php
會發現如下結果,就說明配置成功了
arrive here,111
array(1) { ["url"]=> string(5) "a.php"}
PHP Version 5.6.26 |
System | Linux debian1 3.2.0-4-amd64 #1 SMP Debian 3.2.73-2+deb7u1 x86_64 |
Build Date | Oct 9 2016 22:59:11 |
路由控制這是mvc框架的核心功能,我們可以用這種方式來保證一個入口
有人用的web伺服器是apache,可以使用
線上Apache .htaccess檔案轉Nginx配置檔案 - aTool線上工具
網址是:http://www.atool.org/htaccess2nginx.php
這樣還是很方便的。
相關文章
- rewrite規則中引數多於9個的處理方式 apache nginxApacheNginx
- nginx rewriteNginx
- nginx rewriteNginx
- php 與 nginx 的兩種處理方式PHPNginx
- nginx學習筆記(4):通過instance標誌位處理過期事件Nginx筆記事件
- vue3.x路由404通配處理Vue路由
- Nginx rewrite 詳解Nginx
- nginx 是如何處理過期事件的?Nginx事件
- nginx通過https方式反向代理多例項tomcatNginxHTTPTomcat
- nginx rewrite語法格式Nginx
- nginx thinkphp rewrite配置項NginxPHP
- nginx之rewrite匹配需求Nginx
- Nginx Rewrite規則初探Nginx
- nginx的rewrite設定Nginx
- nginx高階篇rewriteNginx
- GoWeb開發_Iris框架講解(三):路由功能處理方式GoWeb框架路由
- 通過佇列實現批量處理佇列
- .Net Core 路由處理路由
- Nginx 實現 Rewrite 跳轉Nginx
- nginx日誌處理Nginx
- 錯誤處理:如何通過 error、deferred、panic 等處理錯誤?Error
- nginx 處理客戶端請求的完整過程Nginx客戶端
- 伺服器負載過高的處理方式伺服器負載
- oracle使用者鎖住、過期處理方式Oracle
- redis的過期健的處理方式與原理Redis
- nginx location匹配及rewrite規則Nginx
- Nginx location匹配及Rewrite重寫Nginx
- Java之執行緒安全問題的3種處理方式(通過執行緒同步)Java執行緒
- error的處理方式Error
- Flutter處理Webview與H5通訊的常見方式FlutterWebViewH5
- Nginx Rewrite實際應用配置解析Nginx
- Nginx 學習總結(4)—— Rewrite 模組Nginx
- Nginx常用Rewrite偽靜態規則Nginx
- Nginx的Rewrite規則與例項Nginx
- 通過AWR報告處理故障一次心得
- Nginx通過域名代理tcp埠NginxTCP
- 通過Cache::Memcached::Fast方式AST
- nginx處理http請求流程NginxHTTP