ホームページ  >  記事  >  php教程  >  ThinkPHPのURL書き換え+ルーティング+擬似静的でSEO効果を実現します。

ThinkPHPのURL書き換え+ルーティング+擬似静的でSEO効果を実現します。

高洛峰
高洛峰オリジナル
2016-10-17 09:37:001851ブラウズ

1. URL を書き換え、URL に Index.php を隠します。

ThinkPHP は、PHP フレームワークとして、エントリー ポイントが 1 つしかないため、元の URL はそれほど使いやすいものではありません。ただし、ThinkPHP には、必要な URL 形式をカスタマイズするためのさまざまなメカニズムが用意されており、Apache .htaccess ファイルを使用すると、SEO に適したユーザー フレンドリーな URL アドレスをカスタマイズできます。

.htaccess ファイルは、Apache サーバー内の構成ファイルであり、関連するディレクトリ内の Web ページの構成を担当します。 .htaccess ファイルの書き換えルールを使用して、ThinkPHP URL 内のindex.php ファイル (つまり、エントリ ファイル) を非表示にすることができます。これは、擬似静的 ThinkPHP URL の最初のステップでもあります。

たとえば、元の URL は次のとおりです:

http://www.baidu.com/index.php/Index/insert

index.php を削除すると、次のようになります:

http://www.baidu. com/Index /insert

このように、 http://Webページアドレス/アプリケーションモジュール名/オペレーション名[/変数パラメータ] という共通のURL形式になります。

Apache httpd.conf 設定ファイルを変更します

1. mod_rewrite.so がロードされました

mod_rewrite.so モジュールがロードされていることを確認します (次の設定の前に # を削除します):

LoadModule rewrite_module modules/mod_rewrite.so

2、AllowOverride 構成を変更します

.htaccess ファイルを読み取る必要があるディレクトリを変更し、元のディレクトリをコメント アウトします:

#

AllowOverride None をAllowOverride FileInfo Options に変更します。

変更された構成は次のとおりです。次のように:

#

AllowOverride FileInfoOptions

.htaccess はディレクトリに基づいて制御されます この文は、.htaccess ファイルを読み取る必要があるディレクトリが、 Apache の実際の解析ディレクトリ。仮想ホストが .htaccess 制御を提供する場合、通常は設定されています。

3. .htaccess ファイルの追加 ルールの書き換え

index.php を非表示にする必要があるディレクトリに .htaccess ファイルを作成し、次のルール コードを記述します:

RewriteEngine on

#インデックスを表示しない。 php

RewriteCond %{REQUEST_FILENAME} !-d

RewriteCond %{REQUEST_FILENAME} !-f

RewriteRule ^(.*)$index.php/$1 [QSA,PT,L]

4. 変更プロジェクト設定ファイル

プロジェクト設定ファイル Conf/config.php を編集し、URL モードを 2 (書き換えモード) に設定します:

'URL_MODEL'=>2,

この時点で、各設定は完了です。各設定ファイルを保存した後、Apache サーバーを再起動し、ランタイム ディレクトリにあるプロジェクト キャッシュ ファイルを削除します。ブラウザで非表示のindex.phpの背後にあるアドレスにアクセスして、成功したかどうかをテストします:

http://www.baidu。 com/html/myapp/ Index/index

アクセスが成功すると、Apache .htaccess ファイルの書き換えルールを使用して、index.php エントリ ファイルの構成を非表示にすることが成功します。

2. URL の長さを短くするようにルーティングを設定します。

次のコードを共通設定ファイルに追加します

//开启路由器

 'URL_MODEL' => 2,

 'URL_ROUTER_ON' => true,

 'URL_ROUTE_RULES' =>  array(

  'index' => "Home/Index/index",

  'test'  => "Home/Index/test", 
  //URL/test.html

  '/^C_(\d+)$/' => 'Index/index/user?id=:1'
  //短链接:http://localhost/index.php/C_9

 ),

3. 疑似静的、URL にサフィックス .html を追加します

ThinkPHP は疑似静的 URL 設定をサポートしており、必要な URL サフィックスを設定できます。プロジェクト設定ファイル Conf/config.php を編集し、
URL_HTML_SUFFIX パラメータを次のように設定します:
'URL_HTML_SUFFIX' => '.html',

Runtime ディレクトリ内のプロジェクト キャッシュ ファイルを削除して設定を有効にした後、ブラウザで次のアドレスを入力しても、効果は同じです:

http://127.0.0.1/html/myapp/index.php/Index/index
http://127.0.0.1/html/myapp/index.php/ Index/index.shtml

設定中に、その他の必要なサフィックスも設定できます。サフィックスの設定には . 記号が含まれることに注意してください。
擬似静的を設定した後、どこでも URL の一貫性を保つために、U メソッドを使用してテンプレート内で URL を自動的に生成することをお勧めします。詳細については、「URL を自動的に生成する ThinkPHP U メソッド」を参照してください。

ヒント:
ThinkPHP の疑似静的には誤解されやすい側面があります。疑似静的な設定後、システムは xxx.html などの URL を自動的に生成します。実際はこのようにはなりませんが、前述したように、擬似静的設定後は、.htmlなどのサフィックスの有無により、サフィックスなしのURLアクセスと同様の効果が得られます。したがって、擬似静的を使用する場合は、静的サフィックスを手動で追加するか、ThinkPHP U メソッドを使用してサフィックス付きの URL アドレスを自動的に生成することしかできません。もちろん、ここでは、疑似静的アドレスを持つ URL 形式を自動的に生成する U メソッドを使用することをお勧めします。


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。