2017-05-01 16 views
1

現在、すべてのトラフィックを自分のサイトのwww.バージョンにリダイレクトしています。しかし、特定のフォルダ内のリダイレクトされたリンクを調べると、私は何か問題に気づいているかもしれません。www以外のリダイレクトと末尾にスラッシュがあるhtaccessの問題

基本的に、www.example.com/example/examplepage/のヘッダーチェックを行うと200 OKと表示されます。

www.example.com/example/examplepage(末尾に/なし)をチェックすると、上記のように301にリダイレクトされます。

しかし、私は(wwwなし)example.com/example/examplepage/をチェックすると、それはその後、www.example.com/example/examplepage/(正しいページ)にリダイレクトする... www.example.com/example/examplepage.phpにリダイレクトします。

これは意味があると思いますか?

a)これは問題ありませんか?
b).htaccessに何か不足していますか?

RewriteOptions inherit 
RewriteEngine On 

RewriteCond %{THE_REQUEST} ^.*/index.htm 
RewriteRule ^(.*)index.htm$ http://www.example.com/$1 [R=301,L] 

RewriteCond %{HTTP_HOST} ^example\.com [NC] 
RewriteRule (.*) http://www.example.com/$1 [R=301,L] 


RewriteCond %{THE_REQUEST} \.php 
RewriteRule ^tips/([^.]+)\.php$ http://www.example.com/example/$1/ [R=301,L] 

RewriteRule ^tips/([^.]+[^./])$ http://www.example.com/example/$1/ [R=301,L] 

RewriteRule ^(tips/[^.]+)/$ /$1.php [L] 

ご注意:上記のPHPのルールが特定のフォルダに.php拡張子を「隠す」ために作成されました(彼らはどこにも隠されたくありませんでした)。

+0

...それはなどグレー行く、他の誰かが自分の髪を抜く全体の週末を無駄にしないように期待して可能な限りここでのように多くの詳細を追加しようとしました。 com/example/examplepage'はリダイレクトする必要があります(これは、すべてのURLが末尾にスラッシュで終わることを意味します)。しかし、あなたの指示に従って、 '/ tips /'を起動するURLパスだけがリダイレクトされますか? – MrWhite

+0

はい、そうです。このリダイレクトは/ tipsフォルダにのみ適用されます。たぶん私はこれを明確にして、 "ヒント"リファレンスを "example"に変更してexample.comの参考文献に適合させる必要があったはずです - 申し訳ありませんが...これが意味をなされることを望みます。 – Lee

+0

あなたの例を変更して読んだことがあります。「example.com/example/examplepage/'(wwwは表示されていない)をチェックすると、www.example.com/example/examplepage.php'にリダイレクトされます... " - あなたが投稿したディレクティブでどうなるのか分かりません。 – MrWhite

答えて

0

私は(よくOK -を推測幸運)それを動作するように管理しますが、いずれかの方法は、今で動作しているようです。これは今になり

RewriteEngine On 
RewriteCond %{THE_REQUEST} \.php 
RewriteRule ^tips/([^.]+)\.php$ http://www.example.com/tips/$1/ [R=301,L] 
RewriteRule ^tips/([^.]+[^./])$ http://www.example.com/tips/$1/ [R=301,L] 
RewriteCond %{THE_REQUEST} ^.*/index.htm 
RewriteRule ^(.*)index.htm$ http://www.example.com/$1 [R=301,L] 

RewriteCond %{HTTP_HOST} ^example\.com [NC] 
RewriteRule (.*) http://www.example.com/$1 [R=301,L] 

RewriteRule ^(tips/[^.]+)/$ /$1.php [L] 

:私は次のことを示すために上記のルールの順序を適応してきた

  1. http://example.com/tips/examplepage.php(およびWWW版)
  2. http://example.com/tips/examplepage - スラッシュ(およびWWW版)を付けずに

すべてが最終的に

012(スラッシュを末尾に)www.example.com/tips/examplepage/するリダイレクト

また、www.example.com/examplepage.php(「tips」フォルダ内ではない)がその拡張子を保持します。

また、/(wwwとnon-wwwの両方を使用して)にindex.htmを書き換えます。

私はなぜ `www.exampleそれははっきりしていない

関連する問題