Laravel xampp 中的虚拟主机设置仅适用于第一页
Laravel vhosts setup in xampp is working for only first page
我正在处理 laravel 项目。它适用于 php artisan。当我设置 vhosts 时它只工作索引页面(欢迎页面)但是当我点击登录、注册或任何其他页面时它不工作。显示找不到页面。
我的httpd-vhosts.conf
<VirtualHost *:80>
DocumentRoot "C:/xampp/htdocs/my_laravel/public"
ServerName laravel.dev
ServerAlias laravel.dev
ErrorLog "logs/laravel.log"
CustomLog "logs/custom.laravel.log" combined
<Directory "C:/xampp/htdocs/my_laravel/public">
AllowOverride All
Options Indexes FollowSymLinks
Require all granted
</Directory>
</VirtualHost>
还有我的hosts file
127.0.0.1 laravel.dev
.htaccess
文件在 public 文件夹中
<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]
</IfModule>
您必须在 public/.htaccess 文件中定义 URL 重写。
检查那里的设置是否正确。
Laravel 默认文件如下所示:
<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 ^(.*)/$ / [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
只需备份您的 .htaccess 并尝试将其复制粘贴到您的 htaccess 文件中并检查它是否有效。如果您使用 Laravels 授权,您还必须添加此
# Handle Authorization Header
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
也许您还必须打开模块 mod_rewrite.c
和 mod_negotiation.c
(如果它们尚未打开)。
您可以通过在 apache\conf\httpd.conf
中搜索并取消注释所需模块的行来执行此操作
无论出于何种原因,如果您想自定义 .htaccess,网络上有很多可用资源。
我正在处理 laravel 项目。它适用于 php artisan。当我设置 vhosts 时它只工作索引页面(欢迎页面)但是当我点击登录、注册或任何其他页面时它不工作。显示找不到页面。
我的httpd-vhosts.conf
<VirtualHost *:80>
DocumentRoot "C:/xampp/htdocs/my_laravel/public"
ServerName laravel.dev
ServerAlias laravel.dev
ErrorLog "logs/laravel.log"
CustomLog "logs/custom.laravel.log" combined
<Directory "C:/xampp/htdocs/my_laravel/public">
AllowOverride All
Options Indexes FollowSymLinks
Require all granted
</Directory>
</VirtualHost>
还有我的hosts file
127.0.0.1 laravel.dev
.htaccess
文件在 public 文件夹中
<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]
</IfModule>
您必须在 public/.htaccess 文件中定义 URL 重写。 检查那里的设置是否正确。 Laravel 默认文件如下所示:
<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 ^(.*)/$ / [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
只需备份您的 .htaccess 并尝试将其复制粘贴到您的 htaccess 文件中并检查它是否有效。如果您使用 Laravels 授权,您还必须添加此
# Handle Authorization Header
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
也许您还必须打开模块 mod_rewrite.c
和 mod_negotiation.c
(如果它们尚未打开)。
您可以通过在 apache\conf\httpd.conf
无论出于何种原因,如果您想自定义 .htaccess,网络上有很多可用资源。