私は自分のウェブサイト上のすべてのリンクを上記のようなSEOされたリンクタイプにリンクするphp関数を介して実行する必要があると考えていますか?それから実際のページのコンテンツを表示するために.htaccessファイルにMOD_REWRITEを取得します私は欲しい?
これはそれを行う1つの方法であり、すべてがコントローラーを通過するMVCモデルに基づいています。たとえば、サイトのすべてにアクセスする場合/index.php
(たとえば、http://yoursite.com/index.php? page_id = 1234index.php
)、要求されたURLに、が含まれている場合にリダイレクトを処理するために、index.phpにコードを追加する必要があります。次に、mod_rewriteを使用して、SEO対応URLをポイントに書き直します/index.php
。すでにサイトがあり、それが行われない場合は、再設計するか、コントローラーに移行するか、別の方法を試すことができます。
他の方法では、リクエストとURIを調べることで、mod_rewriteを使用してすべてを厳密に処理できます。次のページがあるとします。http://www.evample.com/page.php?id=1234ドキュメントルートのhtaccessファイルで次のルールを使用できます。
RewriteCond %{THE_REQUEST} ^(GET|POST)\ /page.php\?id=([0-9]+)
RewriteRule ^ /page/%1/ [R=301]
これにより、 http: //www.evample.com/page.php?id = 1234をリクエストすると、http: //www.evample.com/page/1234/への301リダイレクトが取得されます。
次に、内部でpage.phpを指すようにルールを作成する必要があります(この部分はMVCソリューションにも必要であることに注意してください)。
RewriteRule ^page/([0-9]+)/$ /page.php?id=$1 [L,QSA]
mod_rewriteはサイトのページ名について何も知らないため、これにはリダイレクトにページのタイトルが含まれません。`%{THE_REQUEST}を使用する代わりにpage.phpを介してリダイレクトを行っていた場合は、ページタイトルを取得できます。
重複コンテンツの問題を回避するために、検索エンジンからの未編集のURLを禁止する必要がありますか?
301を使用してリダイレクトしている限り、インデックスボットは新しいURLをポイントし、重複を解決します。