0

您好,我今天一直在为我的新家庭服务器苦苦挣扎。我已经在上面安装了最新版本的 ubuntu 服务器。安装了 php、apache、mysql,一切似乎都很完美。

我正在尝试在我的本地计算机上建立一个与 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-default `ServerAdmin webmaster@localhost

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
4

1 回答 1

1

很好的问题,有日志。值得关注;)

如我所见,您正在尝试连接到本地 URL login/

通过你的重写规则,最后,它是

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

它被重定向到另一个 URL(不使用实际的 Php),即/serverpanel/index.php.

因此它尝试再次应用规则,但使用/serverpanel/index.php.

正如你可以猜到的,它将被重写为 go to 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/您可能会发现问题出在哪里。

希望这可以帮助

于 2012-04-05T07:26:15.637 回答