1

基本的に、次のようなテーブルカテゴリがあります

|id|name    |
|1 |home    |
|2 |tutorial|
...

のようなテーブルポスト

|id|name           |cateID|
...
|5 |getting started|2
...

1.tutorialカテゴリで表示(クリック)すると、URLは次のようになります

`index.php/nameOfControllerFile/functionName/2`

2テーブル カテゴリの ID です。

しかし、私は私が見ているすべてのウェブサイトを見ています。ように見えます

category/tutorials.htm or like category/tutorials/

2.getting started投稿を表示すると、URLは次のようになります

index.php/nameOfControllerFile/functionName/5

5テーブルポストのIDです。

しかし、私は私が見ているすべてのウェブサイトを見ています。ように見えます

category/tutorials/getting-started.htm

ここに構造のようなウェブサイトがありますhttp://line25.com/category/tutorials

上記のように基本的なURLをURLに変更するにはどうすればよいですか?

編集

2つの投稿が同じタイトルの場合はどうなりますか

|id|name           |cateID|
...
|5 |getting started|2
|8 |getting started|2 
...
4

4 に答える 4

0

これについては、次の Codeigniter のヘルプ ドキュメントを参照してください。

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

index.php ファイルの削除というセクションを参照してください。

于 2013-09-06T17:24:39.503 に答える
0

これは、Apache サーバーのファイルを介して行われ.htaccess、URL を書き換えます ( mod rewrite )。たとえば、次のようになります。

RewriteEngine on
RewriteRule ^(.*)\.html$ $1.php

上記の行は、.phpURLに. これこれもチェックしてください。.htmlhome.htmlhome.php

また、については、この回答CodeIgniterを確認してください。

于 2013-09-06T17:27:32.217 に答える
0

あなたが何を求めているのか分かりません。ルートかもしれません。それを確認してください:

というコントローラーがあるとしtutorialsます。そのコントローラーにはview、特定のチュートリアルを表示するindex機能と、示した line25 リンクのようにすべてのチュートリアルを表示できるチュートリアル ホームページの機能があります。

注: https://stackoverflow.com/a/9667306/183254https://www.google.com/search?q=site%3Astackoverflow.com+codeigniter+remove+index.php、この質問の他の回答を参照してくださいなどを参照して、URL から index.php を削除する方法を学んでください。この回答の残りの部分は、その部分が理解されていることを前提としています (URL に index.php はありません)。

それで:

class Tutorials extends CI_Controller{

    function index(){
        //view all tutorials
    }

    function view($tutorial_identifier){
        //view single tutorial based on $tutorial_identifier
        //which can be either an id or a name
    }
}

URLのようなものを取得します

http://www.example.com/tutorials/view/5 

単一のチュートリアルを表示する

http://www.example.com/tutorials/

すべてのチュートリアルを表示します。

重要な読み物:ルート

URLをより似たものにしたい場合

http://www.example.com/tutorials/5 

チュートリアル 5 では、次のようなルートを使用できます。

$route['tutorials/(:num)'] = "tutorials/view/$1"; 

もっと似せたいなら

http://example.com/tutorials/getting-started

次のようなルートを追加できます

$route['tutorials/(:any)'] = "tutorials/view/$1";

コントローラーの関数のロジックを変更して、ではなく でviewチュートリアルを検索します。nameid

于 2013-09-06T18:56:31.993 に答える