偽靜態(tài)規(guī)則配置方法匯總
2024-05-08 加入收藏
針對(duì)不同服務(wù)器、虛擬空間,運(yùn)行PHP的環(huán)境也有所不同,目前主要分為:Nginx、apache、IIS以及其他服務(wù)器。下面分享如何去掉URL上的index.php字符,記得在管理后臺(tái)清除緩存,對(duì)于一些ECS服務(wù)器可能要重啟nginx等服務(wù)!
【IIS服務(wù)器】
可以移步,《iis怎么去掉index.php》
【Nginx服務(wù)器】
在原有的nginx重寫文件里新增以下代碼片段:
location / {
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php?s=/$1 last;
break;
}
}
如果是安裝在二級(jí)目錄下,請(qǐng)復(fù)制以下代碼:
location /二級(jí)目錄名/ {
if (!-e $request_filename) {
rewrite ^/二級(jí)目錄名/(.*)$ /二級(jí)目錄名/index.php?s=/$1 last;
break;
}
}
如果類似阿里云空間,一個(gè)虛擬主機(jī)的根目錄與二級(jí)目錄都安裝了易優(yōu),那么設(shè)置如下:
location / {
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php?s=/$1 last;
break;
}
}
location /二級(jí)目錄名/ {
if (!-e $request_filename) {
rewrite ^/二級(jí)目錄名/(.*)$ /二級(jí)目錄名/index.php?s=/$1 last;
break;
}
}
【apache服務(wù)器】
易優(yōu)cms在apache服務(wù)器環(huán)境默認(rèn)自動(dòng)隱藏index.php入口。
如果發(fā)現(xiàn)沒隱藏,可以檢查根目錄.htaccess是否含有以下紅色代碼段:
<IfModule mod_rewrite.c>
Options +FollowSymlinks -Multiviews
RewriteEngine on
#http跳轉(zhuǎn)到https
#RewriteCond %{HTTPS} !=on
#RewriteRule ^(.*)$ https://%{SERVER_NAME}/$1 [R,L]
#http跳轉(zhuǎn)到https
#RewriteCond %{HTTPS} !=on
#RewriteRule ^(.*)$ https://%{SERVER_NAME}/$1 [R,L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?s=/$1 [QSA,PT,L]
</IfModule>
如果還是沒有隱藏,可以嘗試把紅色第四行的代碼改為加上個(gè)問號(hào)試試: RewriteRule ^(.*)$ index.php?/$1 [QSA,PT,L]
或者修改為:RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
如果還是不行,繼續(xù)查看apache是否開啟了URL重寫模塊 rewrite_module , 然后重啟服務(wù)就行了。
如果還是沒有隱藏,可以嘗試把紅色第四行的代碼改為加上個(gè)問號(hào)試試: RewriteRule ^(.*)$ index.php?/$1 [QSA,PT,L]
或者修改為:RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
如果還是不行,繼續(xù)查看apache是否開啟了URL重寫模塊 rewrite_module , 然后重啟服務(wù)就行了。