繁体   English   中英

漂亮的URL Laravel 5.4

[英]pretty urls laravel 5.4

嗨,我遇到了settng漂亮的url并在url中放入public的问题,但这对我不起作用。

我已经试过了

Laravel 5.2漂亮的URLLaravel 5-从URL删除public

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

我正在使用Wamp,Windows 8

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

这是我的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')之类的代码,那么它确实适用于包含public的url,但是当我删除时从url公开所有模式。 它显示404

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

var_dump(Request::root());

在routes.php中,对于带有公共URL的URL,它说http:// localhost / folderName / subFolderName / public,但是对于没有公共URL,它的URL说http:// localhost / ,我认为这就是为什么我的路由文件中的模式是不工作。

PS我已经设置了标题pretty urls laravel 5.4而不是laravel routes not working因为我认为这是.htaccess,我需要对其进行适当配置才能使其正常工作。

我不想更改文件夹的结构,因为我相信这是有某种原因的,因此应该解决一些问题。

关于设置虚拟主机,我将无法在服务器上执行此操作(因为我没有权限),因此没有必要像在登录运行中那样在本地设置虚拟主机来解决此问题。

在您的public / .htaccess中尝试

RewriteRule ^ /public/index.php [L]

和根目录下的.htaccess

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM