【问题标题】:pretty urls laravel 5.4漂亮的网址 laravel 5.4
【发布时间】:2017-07-27 04:44:07
【问题描述】:

您好,我遇到了在 url 中设置 public 的漂亮 url 的问题,但它对我不起作用。

我已经试过了

Laravel 5.2 Pretty URLs, Laravel 5 - Remove public from URL

还有更多类似的网址,但似乎对我没有用。

我正在使用 wamp,Windows 8

我已确保 mod_rewrite 已打开,并且工作正常。

这是我在 root 上的 htaccess。

RewriteEngine On
RewriteRule ^(.*)$ public/$1 [L]

我的 htaccess 在公用文件夹内的测试中

<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>

我也尝试将公用文件夹中的 htacess 粘贴到根文件夹中,并从公用文件夹中删除了一个,但它不起作用

实际上发生的错误是我的路由文件跳过了所有模式,如果我有类似 Route::get('/api/login', 'api@login') 的东西,那么它确实适用于包含公共但当我从 url 中删除 public 时,所有模式都被跳过。它显示 404

我确保所有请求都到达 public/index.php,而神秘的是当我打印时

var_dump(Request::root());

在 routes.php 中,对于带有 public 的 url,它显示为 http://localhost/folderName/subFolderName/public,但对于没有 public 的 url,它显示为 http://localhost/,我认为这就是我在路由文件中的模式不起作用的原因。

附:我设置了标题pretty urls laravel 5.4 而不是laravel routes not working,因为我认为它是.htaccess,我需要正确配置它才能使其正常工作。

我不想更改文件夹结构,因为我相信这是有原因的,应该有一些解决方法。

关于设置虚拟主机,我无法在服务器上执行此操作(因为我没有权限)所以没有使用在本地设置虚拟主机作为登录运行中的解决方法,我必须解决这个问题。

【问题讨论】:

    标签: php .htaccess mod-rewrite laravel-5.4


    【解决方案1】:

    在你的 public/.htaccess 中试试这个

    RewriteRule ^ /public/index.php [L]
    

    还有根目录下的 .htaccess

    RewriteRule ^(.*)$ /public/$1 [L]
    

    【讨论】:

    • Stef,感谢您抽出时间回复此问题,但这在两个网址上都给了我 404,即其中有和没有公开的网址。
    • 假设它说它找不到 index.php,尝试在你的 htaccess 文件中更改 index.php 的路径,这对我来说是固定的。首先尝试删除 index.php,然后公开。不要同时弄乱两个 htaccess 文件,会混淆的。
    猜你喜欢
    • 1970-01-01
    • 2014-04-22
    • 2013-07-03
    • 2016-12-31
    • 2016-02-14
    • 2012-03-07
    • 1970-01-01
    • 2011-02-04
    • 2011-10-03
    相关资源
    最近更新 更多