ホームページ >PHPフレームワーク >ThinkPHP >ThinkPHPのURLルーティングを使用して、SEOに優しいURLを作成するにはどうすればよいですか?
ThinkPHPの強力なルーティングシステムを使用すると、Webサイトの検索エンジンのランキングとユーザーエクスペリエンスを向上させるクリーンでSEOフレンドリーなURLを作成できます。デフォルトに依存する代わりに、フレームワークコンベンション(例: index.php?c=controller&a=action
)によって生成される散らかったURLが散らかっている場合、特定のコントローラーとアクションにマッピングされるカスタムルートを定義できます。これは、主にroute.php
構成ファイルとRoute
クラスを介して実現されます。
SEOに優しいURLを作成するコアは、意味のあるキーワードと明確で階層構造を使用するルートを定義することにあります。たとえば、 /index.php?c=product&a=show&id=123
product&a = show&id=123の代わりに、 /products/123/my-amazing-product
を持っている場合があります。これは、 route.php
ファイル内のルートを定義することによって行われます。正規表現を使用して、着信URLに一致するパターンを定義し、コントローラーアクションにマッピングします。簡単な例は次のようになるかもしれません:
<code class="php">// route.php return [ 'rules' => [ 'products/:id/:name' => ['module' => 'product', 'controller' => 'index', 'action' => 'show'], ], ];</code>
このルートでは、パターン/products/:id/:name
product
モジュール内のindex
コントローラーのshow
アクションに向けられる必要があることを指定しています。 /:id
および/:name
ルートパラメーターであり、URLから動的に抽出され、コントローラーアクションに渡されます。これにより、クリーンなURL構造を維持しながら動的なコンテンツが可能になります。それに応じてモジュールとコントローラーを定義することを忘れないでください。
SEOのThinkPhpのルーティングを完全に活用するには、これらのベストプラクティスに従ってください。
ThinkPhpのルーティングシステムは、コンテンツが豊富なWebサイト用のSEOに優しいURLを作成するために重要な動的なURLセグメントの取り扱いに優れています。最初の例に示すように、ルート定義内の/:id
および/:name
を使用すると、URLの可変部分をキャプチャできます。これらのセグメントは、パラメーターとしてコントローラーのアクション方法に自動的に渡されます。
たとえば、ユーザーが/products/123/my-amazing-product
アクセスした場合、 id
パラメーターは123
であり、 name
パラメーターはshow
アクション内でmy-amazing-product
になります。この動的な動作により、数百の静的ルートを作成することなく、各製品の一意のURLを生成できます。
また、ルート定義内の正規表現を使用して、より洗練されたパターンマッチングを行うこともできます。これにより、動的セグメントの値に対する制約を強制し、データの整合性を確保し、予期しない動作を防ぐことができます。たとえば、 id
数値のみに制限できます。
ThinkPHPのルーティングシステムは非常に柔軟であり、特定のページまたはコントローラー用にカスタムでSEO最適化されたURLを作成できます。標準/:id/:name
パターンに限定されません。特定のニーズに合わせた複雑なルートを作成できます。
たとえば、ブログセクションがある場合は、 /blog/2024/03/my-blog-post-title
などのURLが必要になる場合があります。このようなルートを定義できます。
<code class="php">'blog/:year/:month/:title' => ['module' => 'blog', 'controller' => 'post', 'action' => 'view'],</code>
これにより、このパターンに従ってURLをブログ投稿表示アクションにマッピングします。 year
、 month
、およびtitle
、コントローラーにパラメーターとして渡されます。
ルートの制約を使用して、URLの正しい形式を確保することもできます。
<code class="php">'blog/:year/:month/:title' => ['module' => 'blog', 'controller' => 'post', 'action' => 'view', 'regexp' => ['year' => '\d{4}', 'month' => '\d{2}', 'title' => '[a-zA-Z0-9-] ']],</code>
これにより、正規表現の制約が追加され、 year
4桁の数字であり、 month
2桁の数字であり、 title
には英数字とハイフンのみが含まれています。このレベルのカスタマイズにより、Webサイトのコンテンツと組織を反映する非常にSEOに優しい構造化されたURLを作成できます。
以上がThinkPHPのURLルーティングを使用して、SEOに優しいURLを作成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。