7

ホームページとしてhttp://example.com/index.phpを持っています。私のカテゴリーページの URL はhttp://example.com/index.php?id_category=10&controller=categoryです

ここで、ホームページをカテゴリ ページにリダイレクトする必要があります。Preferences > SEO & URL's > Set Shop URL > Base URI as index.php?id_category=10&controller=category で試してみました

現在、ページはカテゴリ URL にリダイレクトされていますが、ページが開きません。URL は次のように表示されます http://example.com/index.php?id_category=10&controller=category/index.php ?

4

2 に答える 2

17

あなたはそれを間違った方法でやっています。次のようにします。

A) 簡単だが推奨されない方法:

1) Controllers/IndexController.php を開く

2) 関数 initContent を以下のように変更します。

public function initContent()
{

   parent::initContent();
   Tools::redirect('index.php?id_category=10&controller=category');
   $this->context->smarty->assign('HOOK_HOME', Hook::exec('displayHome'));
   $this->setTemplate(_PS_THEME_DIR_.'index.tpl');

}

B) 推奨される方法:

1) Controllers/IndexController.php を override/Controllers/ フォルダーにコピーします 2) コピーしたファイルを開き、以下のように編集します。

class IndexController extends IndexControllerCore 
{

    public function initContent()
    {
       Tools::redirect('index.php?id_category=10&controller=category');

    }
}

3) ファイルを保存し、キャッシュ フォルダーに移動します。class_index.phpを見つけて、そこにある場合は削除します。次に、サイトが正常に機能するかどうかを確認します。

ノート :

1)上記のコードは、アイデアを提供するためのものであり、機能する場合と機能しない場合があります。必要に応じて調整してください。

2) Prestashop の最新バージョンでは、すべてのクラスが class_index.php ファイルでインデックス化されています。そのため、コントローラーまたはクラスをオーバーライドした場合、そのファイルを削除するまで機能しない可能性があります。サーバーに新しいリクエストが行われると、PS はそのファイルを自動的に再生成します。

これが役立つことを願っています。

于 2013-09-26T07:33:17.307 に答える
0

僕のやり方だよ:

  1. ファイル override/controllers/front/IndexController.php を作成します。
  2. 書き込み:
    class IndexControllerCore は FrontController を拡張します {
      パブリック関数 initContent()
        {
          Tools::redirect('index.php?id_category=3&controller=category');
        }
      }

  1. 保存
  2. ファイル cache/class_index.php を削除します
  3. 利益!
于 2015-05-15T18:40:44.343 に答える