1

私は yii webapp の URL seo に携わっています。私は望ましい結果を達成することはできません。

まず、ウェブサイトは多言語です。言語スイッチャーを作成しました。「lang」パラメーターを URL の 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 language url パラメータは「lang」と呼ばれます)

私が必要とするのは:

  • 誰かがメインの URL - www.mysite.com にアクセスした場合 - URL に言語を追加する必要があるため、この方法で言語に基づいて別の URL を設定できます: www.mysite.com/it/ 、 www.mysite.com/ en/など

  • この Yii::app()->createUrl('') のような URL 作成については上記と同じです。

  • 誰かが上記と同じように www.mysite.com/index.php?r=site/index にアクセスして index.php を削除した場合

  • すべての状況で index.php とサイトを削除します

  • どんな種類の URL も常に / 文字で終わります (また、コンテンツの重複を避けるために、'urlSuffix' => "/" を追加しました)

  • 他のコントローラーの場合、ビューアクションを削除する必要があります(ただし、他のコントローラーを維持します)-そして、存在する場合、この方法でURLの一部として「id」を作成します:

    [www.mysite.com/controller/action/id/1?here-other-get-params] または

    [www.mysite.com/controller/id/1?other-params] -> アクションがビューの場合

誰かが私がしなければならないことの段階的な手順を提供できますか? ありがとうございました

よろしく、 フランチェスコ

4

1 に答える 1