如果是百度空間,請移步這里:《百度云空間教你去除URL中index.php的方法》
如果是寶塔環境,請移步這里:《寶塔環境教你去除URL中index.php的方法》
針對不同服務器、虛擬空間,運行PHP的環境也有所不同,目前主要分為:Nginx、apache、IIS以及其他服務器。下面分享如何去掉URL上的index.php字符,記得在管理后臺清除緩存,對于一些ECS服務器可能要重啟nginx等服務!
【IIS服務器】
查看服務器的網站根目錄下是否有 web.config 文件,將紅色代碼添加<system.webServer>與</system.webServer>之間。如果沒有web.config文件,就將全部代碼保存為web.config文件,上傳到網站根目錄下,記得去后臺清除緩存,再從網站首頁訪問哦!
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="OrgPage" stopProcessing="true">
<match url="^(.*)$" />
<conditions logicalGrouping="MatchAll">
<add input="{HTTP_HOST}" pattern="^(.*)$" />
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
</conditions>
<action type="Rewrite" url="index.php/{R:1}" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
【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 , 然后重啟服務就行了。