1

我通过 yiic 创建了一个应用程序。然后我尝试制作一个 SEO 网址。我在 [app root]/protected/config/main.php 取消注释 urlManager。我将以下内容添加到 [app root]/.htaccess 中。

重写引擎开启

如果目录或文件存在,直接使用

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

否则转发到 index.php

重写规则。索引.php

当我浏览 [app]/site/index 时,我收到错误 404 - 找不到对象。但是如果我通过 [app]/index.php?r=site/index 浏览,它会显示我的应用页面。我通过谷歌搜索跟踪了许多网站。但我得到了同样的错误。

请帮我解决这个问题。

4

3 回答 3

1
Try to use this :

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

您可以在 Yii 中使用 urlManager 来自定义 url 规则,而不是使用 .htaccess。在 urlManager 上阅读以了解详细信息。我希望这篇文章也可能有助于给你这个想法。Yii 中的控制 url:controller/action/id 到 /id

于 2012-10-18T05:54:46.487 回答
1

我自己找到了解决方案。1. 在 app/protected/config/main.php 取消注释 urlManager 2. 在 app/ 文件夹下创建 .htaccess 文件。(重要:不在 app/protected/ 文件夹下) 3. 将以下代码复制并粘贴到新的 .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

就这些。谢谢大家帮助我。

于 2012-10-19T16:44:50.890 回答
0

查看这篇关于在 Yii 中重写 URL 的文章

此外,在您的配置中,将 showScriptName 设置为 false

'urlManager'=>array(
    'urlFormat' => 'path',
    'showScriptName' => false,
    ...
于 2012-10-18T07:14:54.397 回答