我在 WSL2/Ubuntu 上使用 Apache 2.4.41。
我有一个 laravel 项目,安装了 Voyager。
我还为它使用了虚拟主机 (vh)。
访问应用程序 URLhttp://myapp
成功。但是,Voyager 应用程序http://myapp/admin
失败,出现 404 错误。
我的VirtualHost
文件是:
<VirtualHost *:80>
ServerName myapp
DocumentRoot /var/www/myapp/public
<Directory "/var/www/myapp/public">
Options Indexes MultiViews
AllowOverride None
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
我的.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>
答案1
您的 DocumentRoot 是 /var/www/myapp/public。
管理员是否在该路径下?如果不是,那么您需要在 Apache 配置中为其定义一个别名:
Alias /path/to/admin "/var/www/myapp/public/admin"
如果它已经在公共路径下,我会仔细检查 Apache 日志和分配给管理页面的 Linux 权限。