我正在与laravel项目合作。它与php artisan一起正常工作。当我设置虚拟主机时,它仅在索引页面(欢迎页面)中起作用,但是当我单击登录,注册或任何其他页面时,它却不起作用。它显示找不到页面。
我的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
文件位于公用文件夹
<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>
答案 0 :(得分:0)
您必须在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 ^(.*)/$ /$1 [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,则网络上有很多资源。