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 应用程序代码中。
为了证明你可以在<?php
后面加上/var/www/public/index.php
:
die($_SERVER['REQUEST_URI']);
它将向您显示 Web 服务器正确重写。
您必须在它重定向的地方找到这样的代码并对其进行注释。
普通应用不能重定向到 www.HOSTNAME,重定向必须在 Web 服务器级别,而不是在应用级别。
【讨论】:
你说得对,我傻到没有意识到。当我暂时指向一个域时,一切都很好。对不起,废话问题堆栈,但感谢 num8er 指出我的解决方案 其实有快速问题的解决方案是正常的。我的回答不仅对您有用,而且对任何可能在寻找此类情况的解决方案时迷失方向的人都有用。很高兴我能帮上忙。 (:以上是关于Laravel 4 主页重定向到 www.ipaddress 并失败的主要内容,如果未能解决你的问题,请参考以下文章
Laravel 5.2 如何将所有 404 错误重定向到主页
访问 url.com/public 时 Laravel .htaccess 重定向到主页