启用漂亮网址后出现500内部服务器错误

时间:2015-04-27 09:26:58

标签: php .htaccess yii2

在网络文件夹中添加此htaccess后:

RewriteEngine on
# If a directory or a file exists, use it directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# Otherwise forward it to index.php
RewriteRule . index.php

并添加组件config/web.php

'urlManager' => [
    'enablePrettyUrl' => true,
    'showScriptName' => false,
    'enableStrictParsing' => false,
    'rules' => [
        // ...
    ],
],

然后在浏览器中打开:

http://localhost/myiiproj/site/login

我有这个错误:

  

内部服务器错误

     

服务器遇到内部错误或配置错误   无法完成您的请求。

     

请通过admin@example.com与服务器管理员联系以告知   它们发生此错误的时间以及您执行的操作   就在这个错误之前。

     

有关此错误的详细信息可能在服务器错误中可用   日志中。

我是否遗漏了配置中的内容?或者还有其他配置可以使这项工作吗?

2 个答案:

答案 0 :(得分:1)

如果使用apache服务器,则必须在httpd.conf中启用rewrite_module, 您可以在C:\ wamp \ bin \ apache \ apache2.4.9 \ conf目录中找到httpd.conf。 这是我的目录,这个目录可能会改变,因此你必须使用你的目录。然后你去行:

#LoadModule rewrite_module modules/mod_rewrite.so

并删除(#)。您必须更改如下代码。

LoadModule rewrite_module modules/mod_rewrite.so

保存并关闭httpd.conf文件。重启你的apache服务器。

答案 1 :(得分:0)

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule .* index.php/$0 [PT,L] 
</IfModule>

这是一个简单的htaccess来转换漂亮的网址 并确保启用mod_rewrite

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^/?mysite/(.*)$ /mysite/index.php/$1 [L]

来自这篇文章 Yii how to get clean and pretty URL