2011-01-14 5 views
0

ウェブサイトがあり、サブフォルダの1つが/ thanksです。私は/thanksと/ thanks /(httpステータス301)の相違点

/thanks/を入力すると

だから、(1)ページの完全なURIは、私は200のリターン・ステータスを取得し、それは(デフォルト)ページを拾う今

/thanks/index.php 

だろうindex.php

私は /thanks私は301 /thanks/

にリダイレクト得る入力しかしながら

行動は正しいですが、私は/thanksも301

せずに、直接/thanks/フォルダにサービスを提供したいと思いますが、それは可能ですか? Apacheが「自動的に」301を生成しているようにところで

は、それが見え、私は疑問に思う:あなたがさて/thanks/

答えて

6

この動作は仕様です。原因はurl "/ thanks"が実際にファイルを参照するためです。あなたの便宜のためにのみ、Webサーバーは、そのようなファイルが存在するかどうかをチェックし、そうでない場合、そのディレクトリが存在するかどうかを検査し、存在する場合、要求を正しい宛先 "/ thanks /"にリダイレクトします。

可能な限りスラッシュを適用/使用するのが実際のベストプラクティスです。正式なフォームであり、Webサーバーの負荷を軽減します(オリジナルとリダイレクトの2つではなく1つのHTTP要求を解析します)。エンジンの最適化。

これを修正する方法は、まだ修正が必要かどうかという疑問がまだ残っています。これをURLリライトなどで修正すると、ユーザーは間違った/あなたのSEOの悪いURLを引き続き使用し続けます。あなたのサイトのすべてのリンクを修正して正しいフォームを使用し、デフォルトの修正計画(リダイレクト)を使用すると、リダイレクトは一度ユーザーを正しいURLにリダイレクトし、ユーザーはデフォルトで正しいバージョンを永遠に使用します(少なくとも、このセッションでは)。あなたが最後のスラッシュのリダイレクトを好きではない場合

2

の代わりに/thanksを呼び出すときに直面する問題は、それはあなたが何であるかをページまたはソース実際に呼び出されます人々があなたのウェブサイトにリンクし、検索エンジンがあなたのページをクロールすると...同じページに複数のアドレスを供給

/thanks 
/thanks/ 
/thanks/index.php 

を終わることができ、「名声」

/thanks/ 
に属します

3つのアドレスの間で分割され、ページが検索結果に表示される可能性があります。

後続のスラッシュを適用すると、問題の可能性が1つ削除されます。

したがって、スラッシュを「強制」するという慣習に従うことを心からお勧めします。

1

http://httpd.apache.org/docs/current/mod/mod_dir.html#directoryslash

は、Apache 2ので、あなたはそれをオフにすることができます。しかし、慎重にすべてを読んで、あなたが何をやっているのかを確認してください(これは推奨することではありません)

+0

特にKaerberとSohneeによって言及されたSEO理由とセキュリティの意味が文書化されています。 – timdream

関連する問題