Xampp中的Laravel虚拟主机设置仅适用于第一页

时间:2019-07-10 05:46:28

标签: php laravel xampp

我正在与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>

1 个答案:

答案 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.cmod_negotiation.c已经不在,也许您还必须打开它们。 您可以通过在apache\conf\httpd.conf

中搜索并取消注释所需模块的行来完成此操作

如果出于任何原因要自定义.htaccess,则网络上有很多资源。