【问题标题】:unable to remove index.php from laravel url ?? in ubuntu 14.04无法从 laravel url 中删除 index.php ??在 Ubuntu 14.04 中
【发布时间】:2016-06-30 07:36:05
【问题描述】:

那里 我刚刚在 laravel 5.2 中创建了一个新项目。然后我已经成功地从我在 Windows 中的项目的 url 中删除了 public/index.php 它工作正常。 但是,虽然我在 var/www/html 中的 ubuntu 中将相同的项目复制为 /var/www/html/myproject。并启用 apache2 rewrite_mode。但是如果不将 index.php 放在 url 中,它就不起作用。它仅在没有公共的情况下有效。 http:://localhost/myproject/index.php/cms(它工作正常)但是 http:://localhost/myproject/cms(它不起作用)??? .有什么建议吗??? 我的代码是

route.php

define( "PREFIX", "cms" );
Route::get(PREFIX . '/login', 'Auth\AuthController@getLogin');

没关系 我也已经将所有文件从公用文件夹剪切到根目录并将 index.php 文件编辑为

require __DIR__.'/../bootstrap/autoload.php';

require __DIR__.'/bootstrap/autoload.php';

$app = require_once __DIR__.'/../bootstrap/app.php';

通过

$app = require_once __DIR__.'/bootstrap/app.php';

.htaccess as

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

    RewriteEngine On

    # Redirect Trailing Slashes If Not A Folder...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)/$ /$1 [L,R=301]

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

    # Handle Authorization Header
    RewriteCond %{HTTP:Authorization} .
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
</IfModule>

【问题讨论】:

  • 似乎 mod_rewrite 没有加载,或者 AllowOverride All 不在 httpd.conf 中,因此 .htaccess 文件被忽略。确保为您的虚拟主机或默认主机配置设置AllowOverride
  • 谢谢。解决了!!!

标签: php apache .htaccess laravel ubuntu-14.04


【解决方案1】:

我遇到了这个问题,并在http://laravel.io 上找到了解决方案。

在 Apache 2.4.7 上,通过设置 AllowOverride None 将 apache2.conf 设置为不允许 .htaccess 覆盖:

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

您可以在 apache2.conf 中更改此设置,但不建议这样做。而是在您的站点的 VirtualHosts 文件中执行此覆盖,即。网站可用/yoursite.com.conf。像这样的:

<Directory /var/www/html/yoursite.com/laravelappinstall/public/>
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>

确保您已启用重写模块,即。 sudo a2enmod 重写。重新启动您的网络服务器,即。 sudo service apache2 重启。

来源:http://laravel.io/forum/09-15-2015-removing-indexphp-from-url-laravel-5116

【讨论】:

  • 太棒了。如果有机会,请检查此解决方案是否已解决。谢谢!
【解决方案2】:

•转到主项目/公共>>

a.  .htacess
b.  favicon.ico
c.  index.php
d.  robots.txt
e.  web.config

1.从公用文件夹中剪切这5个文件,然后粘贴到主项目文件夹,即公用文件夹之外的... mainproject/files

2.粘贴后下一步,打开index.php,修改

•require __DIR__.'/…/bootstrap/autoload.php';  to
•require __DIR__.'/bootstrap/autoload.php';

modify

 $app = require_once DIR.'/../bootstrap/app.php'; to
 $app = require_once DIR.'/bootstrap/app.php';

【讨论】:

    猜你喜欢
    • 2014-05-15
    • 2018-10-16
    • 2017-01-28
    • 2018-03-04
    • 1970-01-01
    • 1970-01-01
    • 2013-08-09
    • 2012-12-27
    • 1970-01-01
    相关资源
    最近更新 更多