URL重寫通過服務(wù)器配置將動(dòng)態(tài)URL轉(zhuǎn)為靜態(tài)形式,在Apache中啟用mod_rewrite并配置.htaccess實(shí)現(xiàn),如RewriteRule ^article/([0-9]+)$ article.php?id=$1;在Nginx中通過server塊內(nèi)try_files或rewrite指令完成,如rewrite ^/user/(1+)$ /user.php?name=$1 last,常用于SEO優(yōu)化、MVC路由及隱藏入口文件。/ ?
URL重寫在PHP開發(fā)中非常常見,主要用于將動(dòng)態(tài)URL轉(zhuǎn)換為更友好、利于SEO的靜態(tài)形式。實(shí)現(xiàn)URL重寫主要依賴于服務(wù)器配置,在Apache和Nginx環(huán)境下配置方式不同。下面分別介紹如何在Apache和Nginx中配置PHP的URL重寫規(guī)則。
Apache通過mod_rewrite模塊支持URL重寫,通常使用.htaccess
文件進(jìn)行配置。
1. 確保mod_rewrite模塊已啟用
在Apache配置文件(如httpd.conf)中檢查以下行是否取消注釋:
立即學(xué)習(xí)“PHP免費(fèi)學(xué)習(xí)筆記(深入)”;
LoadModule rewrite_module modules/mod_rewrite.so同時(shí)確保AllowOverride
設(shè)置為All
,以便允許目錄下的.htaccess
文件生效:
2. 創(chuàng)建或編輯 .htaccess 文件
在項(xiàng)目根目錄創(chuàng)建.htaccess
文件,添加如下內(nèi)容示例:
上述規(guī)則表示:當(dāng)訪問article/123
時(shí),實(shí)際由article.php?id=123
處理,但地址欄保持友好格式。
Nginx不使用.htaccess
,所有重寫規(guī)則需寫入服務(wù)器配置文件中,通常位于/etc/nginx/nginx.conf
或站點(diǎn)配置文件如/etc/nginx/sites-available/default
。
1. 在server塊中配置重寫規(guī)則
示例配置:
server {其中try_files
指令是關(guān)鍵:它嘗試按順序查找文件,若不存在則交給index.php
處理,實(shí)現(xiàn)類似前端控制器模式。
2. 更具體的重寫規(guī)則示例
如果需要將/user/john
映射到user.php?name=john
,可添加:
URL重寫常用于以下情況:
product.php?id=5
重寫為/product/5
index.php/article/1
變?yōu)?code>/article/1
配置完成后建議進(jìn)行測(cè)試,注意以下幾點(diǎn):
.htaccess
后無(wú)需重啟服務(wù),但需確認(rèn)配置被加載nginx -s reload
或重啟服務(wù)$_SERVER['REQUEST_URI']
獲取原始請(qǐng)求路徑用于路由解析基本上就這些,根據(jù)所用服務(wù)器選擇對(duì)應(yīng)配置方式即可實(shí)現(xiàn)PHP項(xiàng)目的URL重寫功能。
以上就是PHPURL重寫怎么配置_PHP中Apache或Nginx配置URL重寫規(guī)則的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注php中文網(wǎng)其它相關(guān)文章!
PHP怎么學(xué)習(xí)?PHP怎么入門?PHP在哪學(xué)?PHP怎么學(xué)才快?不用擔(dān)心,這里為大家提供了PHP速學(xué)教程(入門到精通),有需要的小伙伴保存下載就能學(xué)習(xí)啦!
微信掃碼
關(guān)注PHP中文網(wǎng)服務(wù)號(hào)
QQ掃碼
加入技術(shù)交流群
Copyright 2014-2025 http://ipnx.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號(hào)