ワイルドカードサブドメインのリダイレクトと内部URL短縮サービスの受け渡しに問題があります。
アプリに内部URL短縮サービスがあるとしましょう
example.com/b/ABCDE
それは翻訳されます
example.com/book/12345678-the-book-name
によって参照されるスクリプト/b/
(URLルールを処理できるPHPフレームワークを使用)は、短いIDABCDE
を本の実際のID 12345678
(およびタイトル「本の名前」)に変換してから、本の永続的なURLにリダイレクトします。example.com/book/12345678-the-book-name
そのため、掲示板、マイクロブログサイト、ポスターや名刺などの物理メディアなどのWebサイトで本に関するリンクを広めるたびにexample.com/b/ABCDE
、永続的なリンク(example.com/book/12345678-the-book-name
)ではなく短いリンク()を使用します。
www.example.com
次に、リクエストURIを維持しながら、すべてのワイルドカードサブドメインをメインドメイン()にリダイレクトする必要があります。
http://random.example.com/book/11111111-some-book -> http://www.example.com/book/11111111-some-book
http://123456.example.com/book/22222222-another-book -> http://www.example.com/book/22222222-another-book
http://abcdefg.example.com/book/33333333-another-book-again -> http://www.example.com/book/33333333-another-book-again
私が使用したすべてのルールの後に以下のルールを追加することによって
<VirtualHost *:80>
ServerName example.com
ServerAlias *.example.com
RewriteEngine on
RewriteCond %{HTTP_HOST} !^www.example.com [NC]
RewriteRule ^/(.*)$ http://www.example.com/$1 [R=301]
</VirtualHost>
したがって、example.comドメインがあり、以下のようなプレフィックスがないURL
http://example.com/book/11111111-some-book
に翻訳されます
http://www.example.com/book/11111111-some-book
また、別の結果として、内部URL短縮サービスがプレフィックスのないプレーンドメインを使用する場合、解決には2つのリダイレクトが必要になります。例えば、
http://example.com/b/ABCDE
最初にリダイレクトされます
http://www.example.com/b/ABCDE
その後、にリダイレクトされます
http://www.example.com/book/12345678-the-book-name
実際、2回のリダイレクトは気になりません。しかし、私のSEOコンサルタントは、2回のリダイレクトは私のサイトのSEOにとって悪いことだと言いました。(理由はまだわかりません)
だから私は最後のルールを以下に変更してみました
<VirtualHost *:80>
ServerName example.com
ServerAlias *.example.com
RewriteEngine on
RewriteCond %{HTTP_HOST} ^example.com [NC]
RewriteCond %{REQUEST_URI} ^/b/(.*)$
RewriteRule . index.php [L]
RewriteCond %{HTTP_HOST} !^www.example.com [NC]
RewriteRule ^/(.*)$ http://www.example.com/$1 [R=301]
</VirtualHost>
私はApacheの設定があまり得意ではありませんが、http://htaccess.madewithlove.be/で上記のルールをシミュレートすると、機能します。しかし、それをサーバーに適用すると、400の不正な要求が発生しましたexample.com/p/ABCDE
。
だから、私の質問は
- 私のSEOコンサルタントは彼の議論について正しいですか?彼を裏付けることができる説明はありますか、それとも反論がありますか?
- サーバーが400の不正なリクエストを出したのはなぜですか?
- リダイレクトを修正するにはどうすればよいですか?
example.com/b/ABCDE
短縮URL(プレフィックスなし)を維持したいwww
が、それでも1つのリダイレクトで。