Laravel 4 主页重定向到 www.ipaddress 并失败

Posted

技术标签:

【中文标题】Laravel 4 主页重定向到 www.ipaddress 并失败【英文标题】:Laravel 4 home redirecting to www.ipaddress and failing 【发布时间】:2016-10-24 12:48:56 【问题描述】:

我当前的 .htaccess 文件如下所示:

<IfModule mod_rewrite.c>
    Options +FollowSymLinks
    RewriteEngine On
    RewriteCond %REQUEST_FILENAME !-d
    RewriteCond %REQUEST_FILENAME !-f
    RewriteRule ^ index.php [L]
</IfModule>

我在 ubuntu 14.04 发行版上安装了 laravel 4。 我的 apache.config 文件如下所示:

<Directory />
        Options FollowSymLinks
        AllowOverride All
        Require all denied
</Directory>

<Directory /usr/share>
        AllowOverride None
        Require all granted
</Directory>

<Directory /var/www/>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
</Directory>

而我的 000-default.config 如下:

<VirtualHost *:80>
 ServerAdmin webmaster@localhost
 DocumentRoot /var/www/public
<Directory /var/www/public>
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>

Laravel 安装在 /var/www 然而,我的经验是,当我尝试导航到站点的 IP 时(没有附加域)。我被重定向到 www.ip_address 例如 178.1.2.3 会让我重定向到 www.178.1.2.3。

Mod_rewrite 已启用。所以我不知道为什么会这样。

有人可以帮忙吗?

谢谢

【问题讨论】:

看起来像一个原始的重写逻辑。但是由于网站通常通过IP地址访问,实际上通常不能这样解决,我不认为这是一个问题。 如果是重定向,所以不是重写问题,是重定向的问题。如果您导航到:178.1.1.1,结果您位于 www.178.1.1.1,因此这意味着在您的代码中某处发生了重定向。这不是 apache 问题,它在 laravel 应用程序代码中。您必须在它重定向的地方找到这样的代码并对其进行注释。普通应用不能重定向到 www.HOSTNAME,重定向必须在 Web 服务器级别,而不是在应用级别。 抱歉,这不是 IP 地址的问题。该网站在 AllowOverride All 之前通过 IP 愉快地工作,因此我感到困惑 @DavidG,我正在移动我的评论来回答,所以你的问题不在于 apache 配置。 【参考方案1】:

如果是重定向,那么不是重写问题,是重定向的问题。

如果您导航到:http://178.1.1.1,结果您在http://www.178.1.1.1,这意味着在您的代码中某处发生了重定向。

这不是 apache 问题,它在 laravel 应用程序代码中。

为了证明你可以在&lt;?php后面加上/var/www/public/index.php

die($_SERVER['REQUEST_URI']);

它将向您显示 Web 服务器正确重写。

您必须在它重定向的地方找到这样的代码并对其进行注释。

普通应用不能重定向到 www.HOSTNAME,重定向必须在 Web 服务器级别,而不是在应用级别。

【讨论】:

你说得对,我傻到没有意识到。当我暂时指向一个域时,一切都很好。对不起,废话问题堆栈,但感谢 num8er 指出我的解决方案 其实有快速问题的解决方案是正常的。我的回答不仅对您有用,而且对任何可能在寻找此类情况的解决方案时迷失方向的人都有用。很高兴我能帮上忙。 (:

以上是关于Laravel 4 主页重定向到 www.ipaddress 并失败的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 5.2 如何将所有 404 错误重定向到主页

当我尝试访问主页时,Laravel 不会重定向到登录页面

在 Laravel 中无效后防止重定向到主页

访问 url.com/public 时 Laravel .htaccess 重定向到主页

Laravel 在所有 api 路由中使用 Web 身份验证重定向到主页

Laravel 4.2 应用程序在上传实时服务器后发生不必要的重定向