我对laravel很新。我已尝试按照解决方案删除' .public / index.php'来自Laravel网址。
我在root上有一个htaccess文件,在公共文件夹中有另一个。
在根文件中我写了
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_URI} !^public
RewriteRule ^(.*)$ public/$1 [L]
</IfModule>
并在我写的公共文件夹的htaccess文件中
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
# Redirect Trailing Slashes...
RewriteRule ^(.*)/$ /$1 [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>
但没有任何效果。
仍然会打开laravel中的目录列表
我想要的只是将我的网址www.abc.com/public/index.php
转换为www.abc.com/
而不将文件从公共文件夹移到其他文件夹类型解决方案。
答案 0 :(得分:1)
您只需修复网站.conf
文件中的文档根目录和目录覆盖规则。
在Ubuntu上,您可以在/ etc / apache2 / sites-available
中找到它您的文件应如下所示:
<VirtualHost *:80>
ServerName xxx.com
ServerAlias www.xxx.com
ServerAdmin xxx@xxx.com
DocumentRoot /var/www/html/laravel/public/ //<<< add public to your document root
<Directory "/var/www/html/laravel/public"> ## <<< add the override rule if not exists
AllowOverride all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
您的laravel应用程序在任何情况下都不应该在文档根目录中,因为您可以允许任何人访问它!
<强>旁注:强>
如果您使用的是plesk或c-panel,则可以在域设置中编辑文档根目录。
答案 1 :(得分:0)
在Apache配置中,将文档根目录设置为/yourapp/public
- 这应该是根网站可访问文件夹;如果webroot不是Laravel的public
文件夹,那么您可能不想要访问自己。