【问题标题】:Configuring apache mod_alias giving Internal server error配置 apache mod_alias 给出内部服务器错误
【发布时间】:2014-11-28 09:26:29
【问题描述】:

我的虚拟主机有以下配置

<VirtualHost 127.0.0.1:80>
    ServerAdmin                     admins@example.com
    DocumentRoot                    /home/mydir

    ServerName                      mydir.domain.com

    ErrorLog                        /home/mydir/logs/apache-local-error_log
    CustomLog                       /home/mydir/logs/apache-local-access_log common
    RewriteEngine                   on
    RewriteLog                      /home/mydir/logs/rewrite.log
    RewriteLogLevel                 3

    Alias /proj /home/mydir/proj/public_html

    <Directory /home/mydir>
        Options +Indexes
        AllowOverride       ALL
    </Directory>
</VirtualHost>

我在 /home/mydir/proj 中安装了 laravel,当我尝试访问 http://mydir.domain.com/proj 时,我得到“内部服务器错误”,并且在日志中我得到以下信息:

重写日志:

IP Address - - [28/Nov/2014:13:16:58 +0400] [mydri.domain.com/sid#7f4fc4e07098][rid#7f4fc574f508/initial/redir#10] (2) init rewrite engine with requested uri /proj/public_html/index.php
IP Address - - [28/Nov/2014:13:16:58 +0400] [mydri.domain.com/sid#7f4fc4e07098][rid#7f4fc574f508/initial/redir#10] (1) pass through /proj/public_html/index.php
IP Address - - [28/Nov/2014:13:16:58 +0400] [mydri.domain.com/sid#7f4fc4e07098][rid#7f4fc574f508/initial/redir#10] (3) [perdir /home/mydri/proj/public_html/] add path info postfix: /home/mydri/proj/public_html/public_html -> /home/mydri/proj/public_html/public_html/index.php
IP Address - - [28/Nov/2014:13:16:58 +0400] [mydri.domain.com/sid#7f4fc4e07098][rid#7f4fc574f508/initial/redir#10] (3) [perdir /home/mydri/proj/public_html/] strip per-dir prefix: /home/mydri/proj/public_html/public_html/index.php -> public_html/index.php
IP Address - - [28/Nov/2014:13:16:58 +0400] [mydri.domain.com/sid#7f4fc4e07098][rid#7f4fc574f508/initial/redir#10] (3) [perdir /home/mydri/proj/public_html/] applying pattern '^(.*)/$' to uri 'public_html/index.php'
IP Address - - [28/Nov/2014:13:16:58 +0400] [mydri.domain.com/sid#7f4fc4e07098][rid#7f4fc574f508/initial/redir#10] (3) [perdir /home/mydri/proj/public_html/] add path info postfix: /home/mydri/proj/public_html/public_html -> /home/mydri/proj/public_html/public_html/index.php
IP Address - - [28/Nov/2014:13:16:58 +0400] [mydri.domain.com/sid#7f4fc4e07098][rid#7f4fc574f508/initial/redir#10] (3) [perdir /home/mydri/proj/public_html/] strip per-dir prefix: /home/mydri/proj/public_html/public_html/index.php -> public_html/index.php
IP Address - - [28/Nov/2014:13:16:58 +0400] [mydri.domain.com/sid#7f4fc4e07098][rid#7f4fc574f508/initial/redir#10] (3) [perdir /home/mydri/proj/public_html/] applying pattern '^.*$' to uri 'public_html/index.php'
IP Address - - [28/Nov/2014:13:16:58 +0400] [mydri.domain.com/sid#7f4fc4e07098][rid#7f4fc574f508/initial/redir#10] (2) [perdir /home/mydri/proj/public_html/] rewrite 'public_html/index.php' -> 'index.php'
IP Address - - [28/Nov/2014:13:16:58 +0400] [mydri.domain.com/sid#7f4fc4e07098][rid#7f4fc574f508/initial/redir#10] (3) [perdir /home/mydri/proj/public_html/] add per-dir prefix: index.php -> /home/mydri/proj/public_html/index.php
IP Address - - [28/Nov/2014:13:16:58 +0400] [mydri.domain.com/sid#7f4fc4e07098][rid#7f4fc574f508/initial/redir#10] (2) [perdir /home/mydri/proj/public_html/] strip document_root prefix: /home/mydri/proj/public_html/index.php -> /proj/public_html/index.php
IP Address - - [28/Nov/2014:13:16:58 +0400] [mydri.domain.com/sid#7f4fc4e07098][rid#7f4fc574f508/initial/redir#10] (1) [perdir /home/mydri/proj/public_html/] internal redirect with /proj/public_html/index.php [INTERNAL REDIRECT]

apache-local-error_log:

[Fri Nov 28 13:16:58 2014] [error] [client IP Address] Request exceeded the limit of 10 internal redirects due to probable configuration error. Use 'LimitInternalRecursion' to increase the limit if necessary. Use 'LogLevel debug' to get a backtrace.

在 /home/mydir/proj/public_html 我有 laravel 的标准 .htaccess:

<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews
    </IfModule>

    RewriteEngine On
    # Redirect Trailing Slashes...
    RewriteRule ^(.*)/$ /$1 [L,R=301]

    # Handle Front Controller...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^.*$ index.php [L]

    RewriteCond %{HTTP:Authorization} ^(.+)$
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
</IfModule>

任何我做错的建议将不胜感激。

【问题讨论】:

  • index.php 在它搜索的位置不存在?
  • /home/mydir/proj/public_html @Sumurai8中有index.php
  • 我认为你的别名是罪魁祸首。我没有足够的经验来确定这些。尝试将其注释掉,重新启动 Apache(必需的步骤!)并重试。
  • @Sumurai8 是的别名是问题,我需要修复它而不是删除。我已经删除了,如果我转到mydir.domain.com/proj/public_html 它可以工作,但我不想在 url 中写入 public_html 并且我不希望通过 http 访问 public_html 以上的文件
  • 那为什么不改变document_root呢?如果您不想访问该级别以下的文件,则应将文档根目录移至 /proj/public_html 目录。

标签: apache .htaccess mod-alias


【解决方案1】:

更新配置文件。

<VirtualHost 127.0.0.1:80>
    ServerAdmin                     admins@example.com
    DocumentRoot                    /home/mydir

    ServerName                      mydir.domain.com

    ErrorLog                        /home/mydir/logs/apache-local-error_log
    CustomLog                       /home/mydir/logs/apache-local-access_log common
    RewriteEngine                   on
    RewriteLog                      /home/mydir/logs/rewrite.log
    RewriteLogLevel                 3

    Alias /proj /home/mydir/proj/public_html

    <Directory /home/mydir>
        Options +Indexes
        AllowOverride all
        Require all granted
    </Directory>
</VirtualHost>

【讨论】:

  • 我有 apache 2.2 并且所有授予的 Reuire 都给了我以下错误:“配置错误:无法执行身份验证。未设置 AuthType!”我已经搜索了解决方案,但大多数时候我都知道我需要删除它或使用“全部允许”来代替。试过了,但没有运气。
猜你喜欢
  • 1970-01-01
  • 2012-09-02
  • 1970-01-01
  • 2018-01-02
  • 1970-01-01
  • 2018-09-14
  • 2016-09-05
  • 2017-08-25
  • 1970-01-01
相关资源
最近更新 更多