Apache-2.2
mod-rewrite 在 Ubuntu 上不起作用
我正在嘗試刪除 CodeIgniter URL 中的“index.php”。
我讓它在我的 Mac (MAMP) 上執行,但無法在我的 Ubuntu (Lucid) 託管伺服器上執行。
這有效:mysite.com/index.php/home
但這會產生 404 錯誤:mysite.com/home
我已按照這篇文章中的說明進行操作,並將以下幾行包含在我的 .htaccess 文件中。
RewriteEngine on RewriteCond $1 !^(index\.php|resources|robots\.txt) RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php/$1 [L,QSA]
- 我已經確認在 Apache2 上傳入了 mod-rewrite。
- .htaccess 文件位於 webroot (/var/www) 中,這也是我的主要 index.php 所在的位置。
- .htaccess 文件權限為:-rwxrwxr-x
- 我已經為 .htaccess 文件嘗試了大約 20 個不同的發布答案,所以我懷疑我託管的 Ubuntu (Lucid) 伺服器上的整體 Apache 配置有問題。
需要設置哪些其他 Apache 配置才能使 mod-rewrites 工作?我的 httpd.conf 文件是空的。
謝謝!
AllowOverride FileInfo
如果您在 .htaccess 文件上執行此操作,請確保至少啟用Options FollowSymLink
您的 Apache 配置文件。關於 httpd.conf 為空的主題,只是您使用的是基於 Debian 的發行版,您應該尋找的地方是
/etc/apache2/sites-available/default
(即預設的虛擬主機配置文件)。主伺服器指令位於/etc/apache2/apache2.conf
.(哦!是的,您的測試案例執行良好)。
檢查是否設置了 AllowOverride;一個簡單的臨時的:
Deny from all
在您的 .htaccess 中可以很好地作為測試案例。