66

Yii2 でクリーンな URL を有効にするにはどうすればよいですか? index.php と '?' を削除したい URL パラメータから。そのためにYii2でどのセクションを編集する必要がありますか?

4

14 に答える 14

16

まず重要なポイントは、

サーバーで Module_Rewrite が有効になっている (LAMP、WAMP、XAMP など) yii2 フレームワークで URL の再配線を行うには .htaccess ファイルを 1 つ作成し、/web フォルダーに配置します

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

第二段階

構成フォルダーcommon/config/main-local.phpをコンポーネント配列に追加

'urlManager' => [
   'class' => 'yii\web\UrlManager',
   // Disable index.php
   'showScriptName' => false,
   // Disable r= routes
   'enablePrettyUrl' => true,
   'rules' => array(
      '<controller:\w+>/<id:\d+>' => '<controller>/view',
      '<controller:\w+>/<action:\w+>/<id:\d+>' => '<controller>/<action>',
      '<controller:\w+>/<action:\w+>' => '<controller>/<action>',
   ),
],
于 2015-04-06T23:02:22.823 に答える
3

この議論に追加するだけです - 私は Yii2 をインストールしたばかりで、config/web.php に次のコメントアウトされたコードが含まれています:

'urlManager' => [
  'enablePrettyUrl' => true,
  'showScriptName' => false,
  'rules' => [],
],

受け入れられた回答に .htaccess ファイルを追加する場合は、上記のコメントを外すだけで、きれいな URL が機能します (受け入れられた回答の「ルール」が何のためにあるのかわかりませんが、それらがなくてもすべてが機能するようです)。

于 2016-12-13T13:30:39.257 に答える
3

nginx ではそのように設定します

location / {
    try_files $uri $uri/ /index.php$is_args$args;
}
于 2016-08-06T16:31:12.413 に答える
0

Step1: プロジェクト config/main.php で例: frontend/config/main.php

'urlManager' => [
            'enablePrettyUrl' => true,
            'showScriptName' => false,
            'rules' => [],
        ]

ステップ 2: .htaccess ファイルはめ込み Web フォルダーを作成します。例: frontend/web

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

#php_flag  display_errors        on
#php_value error_reporting       2039
于 2018-04-05T07:59:28.203 に答える