您好我正面临着在网址中设置相关公共网址的问题,但这对我不起作用。
我已经尝试了
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(&#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>
答案 0 :(得分:0)
在您的公开/ .htaccess
中尝试此操作RewriteRule ^ /public/index.php [L]
根目录中的.htaccess
RewriteRule ^(.*)$ /public/$1 [L]