我参与了 yii webapp 中的 url seo。我无法达到预期的效果。
首先,网站是多语言的。我创建了一个语言切换器,我在 url 中将“lang”参数作为 GET 值传递。
然后我在这个 url 上关注了 wiki:
http://www.yiiframework.com/wiki/294/seo-conform-multilingual-urls-language-selector-widget-i18n/
- 第 1 步)我创建了 urlManager 类
- 步骤 2) 编辑我的控制器
- 步骤 5) 编辑我的配置文件
对于第 5 步,我使用了以下代码:
'urlManager' => array(
'class' => 'application.components.UrlManager',
'urlFormat' => 'path',
'showScriptName' => false,
'urlSuffix'=>"/",
'rules' => array(
'<lang:(de|it|en|fr|es)>'=>'',
'<lang:(de|it|en|fr|es)>'=>'site/index',
'<lang:(de|it|en|fr|es)>/<action:(!index)>/*' => 'site/<action>',
'<lang:(de|it|en|fr|es)>/<controller:\w+>/<id:\d+>' => '<controller>/view',
'<lang:(de|it|en|fr|es)>/<controller:\w+>/<action:\w+>/<id:\d+>' => '<controller>/<action>',
'<lang:(de|it|en|fr|es)>/<controller:\w+>/<action:\w+>/*' => '<controller>/<action>',
),
),
而且我的 .htaccess 和 yii 默认的 .htaccess 一样
<Files .htaccess>
order allow,deny
deny from all
</Files>
Options All -Indexes
我什么都没改变。
现在,我为 urlManager 尝试了不同的规则,并尝试将其他规则添加到 htacces,但没有成功。
我的问题是,一些带有 404 错误的分页符,对于图像或脚本等资源也是如此。如果我从元素检查器检查资源请求的 url,我看到请求的 url 被重写为网站的 url(这是正确的行为吗?)我还尝试将整个项目放在根子文件夹下,以创建与生产环境不同的测试环境,由于子文件夹,结果更糟。此外,如果我点击主页链接,系统会将我重定向到 www.mysite.com/lang/en
此外,我添加了一种基于 ip 检索语言或静态设置的行为,因此在请求处理结束时,我总是有一个语言代码作为 get 参数。
(GET语言url参数称为“lang”)
我需要的是:
如果有人访问主 url - www.mysite.com - 我需要在 url 中添加语言,所以我可以通过这种方式根据语言拥有不同的 url: www.mysite.com/it/ , www.mysite.com/恩/等等等等
与上面相同的 url 创建像这样 Yii::app()->createUrl('')
如果有人访问 www.mysite.com/index.php?r=site/index 与上述相同并删除 index.php
在所有情况下删除 index.php 和站点
任何类型的 url 总是以 / 字符结尾(也是为了避免重复的内容,为此我添加了 'urlSuffix' => "/")
对于另一个控制器,我需要删除视图操作(但保留另一个) - 并且当存在时,以这种方式将“id”作为 url 的一部分:
[www.mysite.com/controller/action/id/1?here-other-get-params] 或
[www.mysite.com/controller/id/1?other-params] -> 查看操作时
请,有人可以提供我要做什么的分步程序吗?谢谢
问候,弗朗切斯科