在本地电脑上用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