我已阅读并尝试过针对此问题的不同解决方案,包括此帖Laravel 5 - Remove public from URL中的问题,但它对我不起作用。 我有一个名为' abimswake' - 根文件夹。每次我必须访问我的项目时,我都会通过此网址http://localhost:8080/abimswake/public/login访问 在尝试该帖子中的所有解决方案后,当我尝试访问相同的网址时,我的网址会更改为http://localhost:8080/public/public
然后我也想知道如果没有公众,网址将会是什么样子。请有人帮助我。我的.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]
RewriteRule ^(.*)$ public/$1 [L]
# 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>
答案 0 :(得分:1)
更新您的Web服务器的虚拟主机以指向abimswake / public并使用公共目录中的默认Laravel .htaccess文件。
默认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]
</IfModule>
Apache虚拟主机示例
<VirtualHost *:80>
ServerName hostname-goes-here
DocumentRoot "/path/to/abimswake/public"
<Directory "/path/to/abimswake/public">
AllowOverride all
</Directory>
</VirtualHost>
Nginx虚拟主机示例
server {
listen 80;
root /path/to/abimswake/public;
index index.php index.html index.htm;
server_name hostname-goes-here;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
try_files $uri /index.php =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
这将从公共目录服务器并使用您的主机名(目前您使用localhost,我建议创建自定义主机名)。结合默认的.htaccess,您的网址中不应包含不需要的子目录。