【发布时间】:2013-11-06 08:24:00
【问题描述】:
我参与了 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 步,我使用了以下代码:
'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/en/ 等等等等。
与上面相同的 url create like this 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] -> 何时查看操作
请,有人可以提供我要做什么的分步程序吗? 谢谢你
问候, 弗朗切斯科
【问题讨论】:
标签: .htaccess mod-rewrite yii url-rewriting seo