易優cms在phpstudy環境下,可以去除:/index.php?/guanyuwomen/ 中的index.php嗎

黄文Rex發表於2024-08-02
針對不同伺服器、虛擬空間,執行PHP的環境也有所不同,目前主要分為:Nginx、apache、IIS以及其他伺服器。下面分享如何去掉URL上的index.php字元,記得在管理後臺清除快取,對於一些ECS伺服器可能要重啟nginx等服務!
 
【IIS伺服器】
可以移步,《iis怎麼去掉index.php》
 
【Nginx伺服器】
在原有的nginx重寫檔案裡新增以下程式碼片段:
location / {
    if (!-e $request_filename) {
        rewrite ^(.*)$ /index.php?s=/$1 last;
        break;
    }
}

如果是安裝在二級目錄下,請複製以下程式碼:
location /二級目錄名/ {
    if (!-e $request_filename) {
        rewrite ^/二級目錄名/(.*)$ /二級目錄名/index.php?s=/$1 last;
        break;
    }
}

如果類似阿里雲空間,一個虛擬主機的根目錄與二級目錄都安裝了易優,那麼設定如下:
 
location / {
    if (!-e $request_filename) {
        rewrite ^(.*)$ /index.php?s=/$1 last;
        break;
    }
}
location /二級目錄名/ {

    if (!-e $request_filename) {
        rewrite ^/二級目錄名/(.*)$ /二級目錄名/index.php?s=/$1 last;
        break;
    }
}

【apache伺服器】
易優CMS在apache伺服器環境預設自動隱藏index.php入口。
如果發現沒隱藏,可以檢查根目錄.htaccess是否含有以下紅色程式碼段:
<IfModule mod_rewrite.c>
Options +FollowSymlinks -Multiviews
RewriteEngine on

#http跳轉到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>

如果還是沒有隱藏,可以嘗試把紅色第四行的程式碼改為加上個問號試試:  RewriteRule ^(.*)$ index.php?/$1 [QSA,PT,L]
或者修改為:RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]

如果還是不行,繼續檢視apache是否開啟了URL重寫模組 rewrite_module , 然後重啟服務就行了。

 

相關文章