-1

CodeIgniter は初めてです。
1 つのサイトを作成し、URL を短くしたい。
たとえば、現在の URL は次のとおりです。

http://example.com/planner/planner/index.php/planner/main

そしてなりたい

 http://example.com/planner/planner/main. 

まず、index.php タグを削除しますが、その後 URL で 404 エラーが発生します。
index.php とコントローラー名を削除したい。

どうすればそれができるか知っている人はいますか?

PS。私の URL は index.php タグでしか機能しません ...

4

2 に答える 2

1

.htaccess を作る

RewriteBase /
RewriteEngine on
RewriteCond $1 !^(index\.php|images|css|js|robots\.txt|favicon\.ico)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?$1 [L] 

MYAPPLICATION_FOLDER\config\config.php を編集

$config['index_page'] = '';

ユーザーガイドを読む

http://ellislab.com/codeigniter/user-guide/general/urls.html

于 2013-02-14T06:30:32.597 に答える
1

以下のコードを使用して、URL から index.php を削除できます。

RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]

ただし、URL をさらに短縮するには、codeIgniter によるルート リマップ機能を訴える必要があります。これについては、codeigntier ユーザー ガイドの URL ルーティングの下に明確に記載されています。

ルーティング ルールは、application/config/routes.php ファイルで定義されます。その中に、独自のルーティング基準を指定できる $route という配列があります。ルートは、ワイルドカードまたは正規表現を使用して指定できます

 Wildcards

典型的なワイルドカード ルートは次のようになります。

 $route['product/:num'] = "catalog/product_lookup";

ルートでは、配列キーには一致する URI が含まれ、配列値には再ルーティング先の宛先が含まれます。上記の例では、URL の最初のセグメントに「product」というリテラル ワードがあり、2 番目のセグメントに数字がある場合は、代わりに「catalog」クラスと「product_lookup」メソッドが使用されます。

リテラル値を照合するか、次の 2 つのワイルドカード タイプを使用できます。

(:num) は、数字のみを含むセグメントに一致します。(:any) は、任意の文字を含むセグメントに一致します。

注: ルートは、定義された順序で実行されます。上位のルートは常に下位のルートよりも優先されます。例

いくつかのルーティングの例を次に示します。

   $route['journals'] = "blogs";

最初のセグメントに「journals」という単語を含む URL は、「blogs」クラスに再マッピングされます。

   $route['blog/joe'] = "blogs/users/34";

blog/joe セグメントを含む URL は、"blogs" クラスと "users" メソッドに再マッピングされます。IDは「34」に設定されます。

   $route['product/(:any)'] = "catalog/product_lookup";

最初のセグメントが「product」で、2 番目のセグメントが「catalog」クラスと「product_lookup」メソッドに再マッピングされる URL。

   $route['product/(:num)'] = "catalog/product_lookup_by_id/$1";

最初のセグメントが「product」で、2 番目のセグメントが数字の URL は、「catalog」クラスに再マッピングされ、「product_lookup_by_id」メソッドは一致を変数として関数に渡します。

于 2013-02-14T06:32:27.327 に答える