2017-03-27 4 views
1

私はYii2 PHPサイトに2つのコントローラを持っています。最初はSiteControllerです。 2番目はBlogControllerです。私はこの既存のリダイレクト設定を持っています。単一のYii2コン​​トローラにhtacessリダイレクトを追加

Options +FollowSymLinks 
IndexIgnore */* 

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 ^.*$ frontend/web/index.php 

これがうまく機能、およびURLはそうのようなリダイレクト:

/site/aboutは、私は今、私のブログの記事をリダイレクトするために行動をセットアップしようとしています/frontend/web/index.php/site/about

にリダイレクトします。

現在、投稿は/blog/view?slug=SLUGに表示されています。私はそれらを/blog/SLUGに見せたい。 /blog/blog/indexにリダイレクトします。

私はregexとhtaccessの書き換えにひどいです。私は任意の数のデリバティブを試してきましたが、正しくリダイレ​​クトするURLを取得できません。 /frontend/web/index.php/blog/indexにリダイレクトする必要

/blog/test/frontend/web/index.php/blog/view?slug=test/blog/または/blogにリダイレクトすべきです。

助けてもらえますか?私の最新の(失敗)の試みは、次のとおりです。

Options +FollowSymLinks 
IndexIgnore */* 

RewriteEngine on 

# if a directory or a file exists, use it directly 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 

RewriteRule ^blog/(.*)$ frontend/web/index.php/blog/view?slug=%1 

# otherwise forward it to index.php 
RewriteRule ^.*$ frontend/web/index.php 

Yii2の経験を持つ誰もが、私は実際にも私の現在のリダイレクトを誤解することができる、チャイムしたい場合。

答えて

1

は、なぜあなたは

これはYii2が持っている場合ので、あなたのhtaccessファイルを変更するよりも良いだろう、Yii2 itself.Theyのルールが

 'urlManager' => [ 
    'showScriptName' => false, 
    'enablePrettyUrl' => true, 
    'rules' => array(
      '<controller:\w+>/<id:\d+>' => '<controller>/view', 
      '<controller:\w+>/<action:\w+>/<id:\d+>' =>   '<controller>/<action>', 
      '<controller:\w+>/<action:\w+>' => '<controller>/<action>', 
    ), 
] 

]のように設定prettyURLに設定することができます使用していませんなぜそれを使用しないのですか?私の疑問を解決したら、私に知らせてください。

+0

これは理事長です!私はapiコンポーネントのルールを使用しています。 –

関連する問題