2016-08-10 17 views
2

これが私の現在のフォルダ構造です:URLのCodeIgniterのをspecifする間違ったURLのリダイレクト

説明:

  • マイBASE_URLがある:localhost/shoppingCart
  • 私のデフォルトコントローラがWelcome
です

I ha私のプロジェクトをフロントエンドとバックエンドの2つの部分に分けました。バックエンドのために私の標準コントローラは、「管理者/ホーム」である

(管理者は、フォルダや家庭では、コントローラの名前です)

フロントのための私の標準コントローラには「歓迎」で終わる(歓迎コントローラの名前です)

問題:

私はコントローラを「歓迎する」としているが、URLが同じままlocalhost/ShoppingCart/adminを入力してください。私はいくつかのエラーを投げる必要があります。

localhost/ShoppingCart/admin/homeと入力すると正常に動作しています。

私はlocalhost/ShoppingCart/adminlocalhost/ShoppingCartにリダイレクトするようにルートを使用してみました:あなたのケースでは

#Redirect a sub folder to root 
Redirect 301 /subfolder/

:メインドメインにサブフォルダをリダイレクトするには

$route['/admin'] = "welcome"; 
+0

ようこそスタックオーバーフロー!私は少し書式を改良し、それを少し読みやすくしました。他の例については、[編集ヘルプガイド](// stackoverflow.com/editing-help)を見てください。 – FrankerZ

答えて

0

を、あなたはこのような何かを行う必要があるでしょうそれは:

redirect 301 /admin/
+0

解決策のためのThanx ... routes.phpに入れなければならないのですか?上記のuの構文は何ですか? –

+0

いいえ、これはあなたの '.htaccess'ファイルにあります。ここにいくつかの[Common .htaccess Rules](https://gist.github.com/ScottPhillips/1721489) – JazZ

+0

がありません。私は "301/admin http:// localhost/ShoppingCart"をhtaccessに置きます。 。 –

0

あなたの問題はルート上にあります。

はまた、私はあなたがバックエンドとフロントエンドのような2つの異なるものがされていないコントローラ Naming convention Wikipedia

「歓迎」と「ホーム」から「グッド」の名前を使用することをお勧めします。私はあなたのroutes.phpファイルは今

$route['default_controller'] = "welcome"; 

のようなものが含まれていることを前提としたコード

について今

、お使いのコントローラのフォルダ内の各サブフォルダのためにあなたがroutes.php$route['default_controller']にデフォルトのコントローラを設定する必要がありますがされサブフォルダでは動作しません。あなたのための

は、フレームワークがそれらを管理するために起こっている/シンボルについて、使いたいだけの名前を設定することを忘れない、

$route['admin'] = 'admin/home' 

ノートのようなものになります。URLにAPPPATH.'controllers'ディレクトリ内のすべてのサブディレクトリがAPPPATH.'route.php'にデフォルトのコントローラと同じようという名前のコントローラを持っている必要がありhttp://localhost/ShoppingCart/admin

+0

名前付け規則に関する提案はありません。 "$ route ['admin'] = 'admin/home'"を使用すると、私が望んでいないバックエンドのホームページ。私は "localhost/ShoppingCart/admin"を "localhost/ShoppingCart"である私のメインドメインにリダイレクトしたいと思っています –

+0

私はプライベートエリアを持っていて、それにアクセスしていませんが、 '$ route ['admin'] = ''/'記号なしで' 'welcome ''はうまくいくはずです。 – TiGreX

0

なります

。管理モジュールHome.phpの名前をWelcome.php(クラスも内部)に変更すると、この問題は解決します。これは、ルータが最初のURIセグメントのファイルAdmin.phpを見つけなかった場合、adminディレクトリを探します。それが見つかると、URLに次のセグメントがない場合、ルータはconfig.phpファイルに設定されたデフォルトコントローラメソッドを探します。 controllers dirと同様に、すべてのサブディレクトリ内のホームページまたはウェルカムページの統一された名前を持つことは簡単に解決できます。

関連する問題