要在服務器上去掉index.php,通常是為了美化URL并簡化網站鏈接。這通常涉及到使用URL重寫規則來隱藏index.php并讓訪問更友好。以下是一些常見的Web服務器和應用程序的示例:
確保啟用了mod_rewrite模塊: 打開apache配置文件,查找并確保以下行沒有被注釋掉(前面沒有#):
LoadModule rewrite_module modules/mod_rewrite.so
創建或編輯.htaccess文件: 在您的網站根目錄中,創建一個名為.htaccess的文件,如果已存在則編輯它。
添加重寫規則: 在.htaccess文件中,添加以下重寫規則,它會將URL中的index.php隱藏:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
保存并測試: 保存.htaccess文件并在瀏覽器中測試URL,確保index.php被隱藏。
在nginx配置中添加以下location塊:
location / {
try_files $uri $uri/ /index.php?$query_string;
}
這個配置會嘗試訪問文件,如果找不到文件,則會將請求重定向到index.php并保留查詢字符串。
重新加載nginx配置: 使用以下命令重新加載nginx配置,以使更改生效:
sudo nginx -s reload
Laravel框架(在.env文件中配置)
如果您在使用Laravel框架,可以在.env文件中配置APP_URL參數來去掉index.php。確保在.env文件中設置以下值:
然后,在config/app.php文件中,將’index’設置為”,如下所示:
‘url’ => env(‘APP_URL’, ‘http://yourdomain.com’),
‘index’ => ”,
這將使Laravel應用程序在生成URL時不再包含index.php。