htaccess没有被apache读取的干净网址?

Boy*_*oyd 4 apache .htaccess mod-rewrite laravel

我在这里变得有点疯狂,因为我已经浪费了两个小时让我的干净网址启用了laravel框架.

我在Mac上并且有一个XAMPP设置.注释掉了Loadmodule mod_rewrite,并且php_info()表示加载了mod_rewrite模块.

我在laravel框架的公共文件夹中的.htaccess文件包含清理网址的代码(如他们网站上所述)但是,当我浏览域名网址时,它会给我一个404.

laravel框架文件夹作为虚拟主机运行.

可能是什么,那是错的?!

<IfModule mod_rewrite.c>
     RewriteEngine on

     RewriteCond %{REQUEST_FILENAME} !-f
     RewriteCond %{REQUEST_FILENAME} !-d

     RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>
Run Code Online (Sandbox Code Playgroud)

Con*_*ons 9

确保Loadmodule mod_rewrite取消注释.

确保为vhost设置了适当的AllowOverride,以允许.htaccess执行其操作.

良好指令的一个例子是:

<Directory "/some/absolute/path/htdocs">
Options Indexes Includes FollowSymLinks MultiViews
AllowOverride AuthConfig FileInfo
Order allow,deny
Allow from all
</Directory> 
Run Code Online (Sandbox Code Playgroud)

对于你想要做的事情,.htaccess的一个好的模式是:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php?/$1 [L]
</IfModule>
Run Code Online (Sandbox Code Playgroud)

非常接近你正在做的事情.

重启你的apache服务器.

  • 事实证明,虚拟主机的AllowOverride设置为none.非常感谢你. (4认同)