【问题标题】:xampp apache rewrite not workingxampp apache重写不起作用
【发布时间】:2016-06-21 00:00:47
【问题描述】:

我在 htdocs 中有一个名为 crm 的文件夹,其中包含一个新的 laravel 5.1 项目,我正在尝试通过http://localhost/crm/ 访问它 但它只是带来了包含目录内容的页面索引 而不是在我的 routes.php 中映射的页面为

Route::get('/', function () {
    return view('panel');
});

我已检查 httpd.conf 中是否启用了 apache mod_rewrite

LoadModule rewrite_module modules/mod_rewrite.so

DocumentRoot "C:/xampp/htdocs"
<Directory "C:/xampp/htdocs">

    Options Indexes FollowSymLinks Includes ExecCGI

    AllowOverride All

    Require all granted
</Directory>

那么 crm/public 文件夹中的 .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]
</IfModule>

我也试过改成

Options +FollowSymLinks
RewriteEngine On

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

没有成功。

【问题讨论】:

    标签: apache laravel mod-rewrite


    【解决方案1】:

    您需要将 Laravel 指向 public 目录才能使其工作。例如,如果您已将 Laravel 安装在 C:/xampp/htdocs/ 目录中,则需要使用以下设置:

    DocumentRoot "C:/xampp/htdocs/public"
    <Directory "C:/xampp/htdocs/public">
    

    请勿在公用文件夹中编辑.htacces。尝试更改设置并首先访问 localhost 加载 Laravel 网站。

    当您编辑完 Apache 配置文件后,您应该重新启动 Web 服务器。

    【讨论】:

    • 我这样做了,但现在我遇到了资产(css 和 js)无法加载的问题,除非我将它们移动到公用文件夹。我应该这样做还是有其他方法?
    • CSS 和 JS 只能位于 public 文件夹中。这就是 Laravel 的工作原理。
    猜你喜欢
    • 2016-01-11
    • 2010-12-09
    • 2014-02-02
    • 2011-10-01
    • 1970-01-01
    • 2022-01-23
    • 2012-06-07
    • 2017-08-31
    • 2015-07-26
    相关资源
    最近更新 更多