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

时间:2012-06-29 19:39:38

标签: .htaccess mod-rewrite apache 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>

1 个答案:

答案 0 :(得分: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> 

对于你想要做的事情,.htaccess要遵循的一个好方法是:

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

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

重新启动Apache服务器。