1

数え切れないほどのチュートリアルを読んだ後、mod_rewriteがどのように機能するかを試してみるために午前中ずっと苦労してきました。

次のようなページタイトルとページIDを含むリンクを作成したいと思います。

http://www.example.com/$pageID/$page_title.html

私は自分のウェブサイト上のすべてのリンクを上記のようなSEOされたリンクタイプにリンクするphp関数を介して実行する必要があると考えていますか?それから実際のページのコンテンツを表示するために.htaccessファイルにMOD_REWRITEを取得します私は欲しい?

奇妙なやり方のように思えますか?これは正常ですか?重複コンテンツの問題を回避するために、検索エンジンからの未編集のURLを禁止する必要がありますか?

4

1 に答える 1

1

私は自分のウェブサイト上のすべてのリンクを上記のような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をポイントし、重複を解決します。

于 2012-06-18T16:55:39.253 に答える