漂亮的网址laravel 5.4

时间:2017-03-07 04:48:24

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

您好我正面临着在网址中设置相关公共网址的问题,但这对我不起作用。

我已经尝试了

Laravel 5.2 Pretty URLsLaravel 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(&#39; / api / login&#39;,&#39; api @ login&#39; )然后它确实适用于包含公共的URL,但是当我从url中删除public时,所有模式都被跳过。它显示404

我确保所有请求都到达public / index.php并且当我打印时神秘的事情是

var_dump(Request::root());

在routes.php中,对于公共网址,它显示http://localhost/folderName/subFolderName/public但是对于没有公开的网址,它会显示http://localhost/,我认为这就是为什么路由文件中的模式不起作用的原因。< / p>

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

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

关于设置vhosts,我无法在服务器上执行此操作(因为我没有权限)所以没有使用在本地设置vhost作为解决方案,因为在登录运行中我必须解决此问题。 / p>

1 个答案:

答案 0 :(得分:0)

在您的公开/ .htaccess

中尝试此操作
RewriteRule ^ /public/index.php [L]

根目录中的.htaccess

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