从Lavarel应用程序的url中删除public/index.php



在本地电脑上用Apache2在Ubuntu 18.04LTS上创建了我的第一个Laravel应用程序(使用Lavarel 7.x(。

按照Lavarel Docs的设置说明,一切顺利
一个问题是url:

http://localhost/lavarel-project1/ - returns the directory listing

apache2虚拟主机文件如下所示:

<VirtualHost *:80>
DocumentRoot /var/www/html/lavarel-project1/public
<Directory /var/www/html/lavarel-project1/public>
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

根据对网络文章的研究,声明从Lavarel App根目录复制server.php文件并将其重命名为index.php。这起到了作用,但随后在应用程序中创建了路线,发现了url的其他问题:

http://localhost/lavarel-project1/ - works
http://localhost/lavarel-project1/catlog/ - doesn't work
http://localhost/lavarel-project1/public/index.php/catlog - works

以下是公用文件夹中.htaccess文件的内容:

<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews -Indexes
</IfModule>
RewriteEngine On
# Handle Authorization Header
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} (.+)/$
RewriteRule ^ %1 [L,R=301]
# Send Requests To Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>

在网上研究了这个问题-如何从url中删除public/index.php,但收效甚微-所有推荐的方法都不起作用,因此在这里提出了这个问题

提前感谢。

我认为您不应该将'/public'放在Directory标记处。

试试这个:

`<虚拟主机*:80>DocumentRoot/var/www/html/lavarel-project1/public

<Directory /var/www/html/lavarel-project1>
AllowOverride All
Order allow,deny
Allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined

`这是我的配置,运行良好。

<VirtualHost *:80>
ServerName laravel.dev
ServerAlias www.laravel.dev
DocumentRoot /var/www/html/lavarel-project1/public

<Directory /var/www/html/lavarel-project1/public/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
Require all granted
</Directory>

LogLevel debug
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined

最新更新