當你在 ThinkPHP 中設定了執行目錄為 /public
後,可能會遇到 404 錯誤。這通常是因為 Web 伺服器的配置問題導致的。以下是解決這個問題的幾個步驟:
1. 修改 .htaccess
檔案
如果你使用的是 Apache 伺服器,需要確保 .htaccess
檔案正確配置。在專案根目錄下建立或修改 .htaccess
檔案,內容如下:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /public/
# 如果請求資源不存在,則交給 index.php 處理
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ ./index.php/$1 [L]
</IfModule>
2. 修改 Nginx 配置檔案
如果你使用的是 Nginx 伺服器,需要修改 Nginx 的配置檔案。在 nginx.conf
或者站點配置檔案中新增或修改以下內容:
server {
listen 80;
server_name yourdomain.com;
root /path/to/your/project/public; # 指定專案的 public 目錄
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.4-fpm.sock; # 根據實際 PHP 版本和配置修改
}
}
3. 修改 ThinkPHP 配置
確保 ThinkPHP 的配置檔案中指定了正確的執行目錄。在 config.php
檔案中新增或修改以下內容:
return [
// 執行目錄
'app_dir' => 'public',
// 應用基礎路徑
'base_path' => __DIR__ . '/../',
// 應用入口檔案
'entry_file' => 'index.php',
];
4. 重啟 Web 伺服器
-
Apache:重啟 Apache 服務。
shsudo service apache2 restart
-
Nginx:重啟 Nginx 服務。
shsudo service nginx restart
5. 測試訪問
- 在瀏覽器中訪問你的網站,確保所有配置生效並且沒有 404 錯誤。
總結
透過以上步驟,你可以解決 ThinkPHP 設定執行目錄為 /public
後出現的 404 錯誤。確保 Web 伺服器的配置正確,並且 ThinkPHP 的配置檔案也進行了相應的修改。這樣可以確保應用能夠正常執行。