2012-04-04 109 views
1

您好,我一直在努力今天我的新家庭服務器。我已經安裝了最新版本的ubuntu服務器。安裝的PHP,Apache,MySQL和一切似乎工作完美。Mod_rewrite獲得500服務器錯誤,Ubuntu服務器

我想在本地機器上設置一個與XAMPP完美協作的網站。我一直在使用這個指南來設置mod_rewrite。 http://www.solutionsamir.com/20110303140/Operating-Systems/Linux-Unix/How-to-enable-mod_rewrite-on-ubuntu-server-for-apache2.html

這裏是我的.htaccess

RewriteEngine on 
RewriteCond %{REQUEST_URI} !^/?index.php$ 
RewriteRule . index.php 

這裏是我的000默認 ` 的ServerAdmin網站管理員@本地

DocumentRoot /var/www 
<Directory /> 
    Options FollowSymLinks 
    AllowOverride all 
</Directory> 
<Directory /var/www/> 
    Options Indexes FollowSymLinks MultiViews 
    AllowOverride all 
    Order allow,deny 
    allow from all 
</Directory> 

ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ 
<Directory "/usr/lib/cgi-bin"> 
    AllowOverride all 
    Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch 
    Order allow,deny 
    Allow from all 
</Directory> 

ErrorLog ${APACHE_LOG_DIR}/error.log 

# Possible values include: debug, info, notice, warn, error, crit, 
# alert, emerg. 
LogLevel warn 

CustomLog ${APACHE_LOG_DIR}/access.log combined 

Alias /doc/ "/usr/share/doc/" 
<Directory "/usr/share/doc/"> 
    Options Indexes MultiViews FollowSymLinks 
    AllowOverride all 
    Order deny,allow 
    Deny from all 
    Allow from 127.0.0.0/255.0.0.0 ::1/128 
</Directory> 

`

它莫名其妙地工作,但每次我張貼表單,我得到500內部服務器錯誤。任何想法什麼是錯的?

編輯:這就是我通過激活日誌記錄。

192.168.1.110 - - [04/Apr/2012:23:41:22 +0200] [192.168.1.233/sid#7f52893ad1d8][rid#7f528923b0a0/initial] (3) [perdir /var/www/serverpanel/] add path info postfix: /var/www/serverpanel/login -> /var/www/serverpanel/login/ 
192.168.1.110 - - [04/Apr/2012:23:41:22 +0200] [192.168.1.233/sid#7f52893ad1d8][rid#7f528923b0a0/initial] (3) [perdir /var/www/serverpanel/] strip per-dir prefix: /var/www/serverpanel/login/ -> login/ 
192.168.1.110 - - [04/Apr/2012:23:41:22 +0200] [192.168.1.233/sid#7f52893ad1d8][rid#7f528923b0a0/initial] (3) [perdir /var/www/serverpanel/] applying pattern '^(.+)/$' to uri 'login/' 
192.168.1.110 - - [04/Apr/2012:23:41:22 +0200] [192.168.1.233/sid#7f52893ad1d8][rid#7f528923b0a0/initial] (2) [perdir /var/www/serverpanel/] rewrite 'login/' -> 'index.php' 
192.168.1.110 - - [04/Apr/2012:23:41:22 +0200] [192.168.1.233/sid#7f52893ad1d8][rid#7f528923b0a0/initial] (3) [perdir /var/www/serverpanel/] add per-dir prefix: index.php -> /var/www/serverpanel/index.php 
192.168.1.110 - - [04/Apr/2012:23:41:22 +0200] [192.168.1.233/sid#7f52893ad1d8][rid#7f528923b0a0/initial] (2) [perdir /var/www/serverpanel/] strip document_root prefix: /var/www/serverpanel/index.php -> /serverpanel/index.php 
192.168.1.110 - - [04/Apr/2012:23:41:22 +0200] [192.168.1.233/sid#7f52893ad1d8][rid#7f528923b0a0/initial] (1) [perdir /var/www/serverpanel/] internal redirect with /serverpanel/index.php [INTERNAL REDIRECT] 
192.168.1.110 - - [04/Apr/2012:23:41:22 +0200] [192.168.1.233/sid#7f52893ad1d8][rid#7f5289230208/initial/redir#1] (3) [perdir /var/www/serverpanel/] strip per-dir prefix: /var/www/serverpanel/index.php -> index.php 
192.168.1.110 - - [04/Apr/2012:23:41:22 +0200] [192.168.1.233/sid#7f52893ad1d8][rid#7f5289230208/initial/redir#1] (3) [perdir /var/www/serverpanel/] applying pattern '^(.+)/$' to uri 'index.php' 
192.168.1.110 - - [04/Apr/2012:23:41:22 +0200] [192.168.1.233/sid#7f52893ad1d8][rid#7f5289230208/initial/redir#1] (1) [perdir /var/www/serverpanel/] pass through /var/www/serverpanel/index.php 
192.168.1.110 - - [04/Apr/2012:23:41:52 +0200] [192.168.1.233/sid#7f52893ad1d8][rid#7f528923b0a0/initial] (3) [perdir /var/www/serverpanel/] add path info postfix: /var/www/serverpanel/login -> /var/www/serverpanel/login/ 
192.168.1.110 - - [04/Apr/2012:23:41:52 +0200] [192.168.1.233/sid#7f52893ad1d8][rid#7f528923b0a0/initial] (3) [perdir /var/www/serverpanel/] strip per-dir prefix: /var/www/serverpanel/login/ -> login/ 
192.168.1.110 - - [04/Apr/2012:23:41:52 +0200] [192.168.1.233/sid#7f52893ad1d8][rid#7f528923b0a0/initial] (3) [perdir /var/www/serverpanel/] applying pattern '^(.+)/$' to uri 'login/' 
192.168.1.110 - - [04/Apr/2012:23:41:52 +0200] [192.168.1.233/sid#7f52893ad1d8][rid#7f528923b0a0/initial] (2) [perdir /var/www/serverpanel/] rewrite 'login/' -> 'index.php' 
192.168.1.110 - - [04/Apr/2012:23:41:52 +0200] [192.168.1.233/sid#7f52893ad1d8][rid#7f528923b0a0/initial] (3) [perdir /var/www/serverpanel/] add per-dir prefix: index.php -> /var/www/serverpanel/index.php 
192.168.1.110 - - [04/Apr/2012:23:41:52 +0200] [192.168.1.233/sid#7f52893ad1d8][rid#7f528923b0a0/initial] (2) [perdir /var/www/serverpanel/] strip document_root prefix: /var/www/serverpanel/index.php -> /serverpanel/index.php 
192.168.1.110 - - [04/Apr/2012:23:41:52 +0200] [192.168.1.233/sid#7f52893ad1d8][rid#7f528923b0a0/initial] (1) [perdir /var/www/serverpanel/] internal redirect with /serverpanel/index.php [INTERNAL REDIRECT] 
192.168.1.110 - - [04/Apr/2012:23:41:52 +0200] [192.168.1.233/sid#7f52893ad1d8][rid#7f52892304b8/initial/redir#1] (3) [perdir /var/www/serverpanel/] strip per-dir prefix: /var/www/serverpanel/index.php -> index.php 
192.168.1.110 - - [04/Apr/2012:23:41:52 +0200] [192.168.1.233/sid#7f52893ad1d8][rid#7f52892304b8/initial/redir#1] (3) [perdir /var/www/serverpanel/] applying pattern '^(.+)/$' to uri 'index.php' 
192.168.1.110 - - [04/Apr/2012:23:41:52 +0200] [192.168.1.233/sid#7f52893ad1d8][rid#7f52892304b8/initial/redir#1] (1) [perdir /var/www/serverpanel/] pass through /var/www/serverpanel/index.php 
+0

您是否嘗試過把兩條線RewriteLog「rewrite.log」和RewriteLogLevel 3的000默認?你可能會發現他們的輸出很有用 – Mike 2012-04-04 20:25:25

+0

試了一下,並添加了日誌abow。 – NikolajSvendsen 2012-04-04 21:46:31

+0

有趣 - 這表明500錯誤來自PHP腳本(而不是來自Apache配置)。我應該注意,我假設你已經檢查了$ {APACHE_LOG_DIR} /error.log並且沒有任何幫助。如果PHP導致該問題,則可能需要在PHP文件的頂部啓用錯誤日誌記錄。 – Mike 2012-04-05 05:56:04

回答

1

不錯的問題,與日誌。它值得一些關注;)

正如我所看到的,您正嘗試連接到您的本地URL login/

要通過你的重寫規則,到了最後,這是

/var/www/serverpanel/index.php -> /serverpanel/index.php 

到它重定向到另一個網址(不使用實際的PHP)這是/serverpanel/index.php

因此,它試圖再次申請規則,但與/serverpanel/index.php

正如你所猜測的那樣,它將被改寫爲index.php,從而進行無限循環。

在你的日誌仔細看:

(1) [perdir /var/www/serverpanel/] internal redirect with /serverpanel/index.php [INTERNAL REDIRECT] 

這可能是關鍵到您的解決方案:perdir /var/www/serverpanel/

2個問題:

  • 是否有任何.htaccess文件嗎?
  • 如果沒有任何.htaccess,嘗試檢查所有你的Apache conf文件,尋找 一個<Directory "xxx">指令,涉及/var/www/serverpanel/,你會發現問題的所在。

希望這有助於