我參與了yii webapp中的url seo。我無法達到預期的效果。Yii seo url重寫urlManager和.htaccess
首先,該網站是多語言。我創建了一個語言切換器,我在URL中傳遞「lang」參數作爲GET值。
以後,我就跟着這個網址維基:
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是一樣的警予默認的.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參數被稱爲 「郎」)
我需要的是:
如果有人訪問主網址 - www.mysite.com - 我需要添加語言在網址,所以我可以有不同的網址基於這種方式的語言:www.mysite.com/it/,www.mysite.com/en/等等
與上述相同的url創建像這個Yii :: app() - > createUrl('')
如果有人訪問www.mysite.com/index.php?r=site/index與上面相同並刪除index.php
刪除索引。PHP和網站在所有情況
任何種類的URL總是以/字符結尾(也避免了重複的內容,爲了這個,我已經添加了「urlSuffix」 =>「/」)
爲其他控制器我需要刪除視圖操作(但是保留另一個) - 以及何時以這種方式將「id」作爲url的一部分:
[www.mysite.com/controller/action/id/1?here -other-get-params]或
[www.mysite.com/controller/id/1?other-params] - >當動作是查看時
請問,有人可以提供我要做的一步一步的過程? 謝謝
問候, 弗朗切斯科
你好,感謝您的回覆,但您的規則,我還沒有達到我的目標。另外,網站/索引路由在www.mysite.com/lang/en(我不想lang)中進行了轉換,導致404錯誤,但未找到lang控制器,但lang是參數,而不是控制器 – user2548436