2012-03-01 5 views
2

私は小文字と大文字を使用するURLショートナを作成しています。.htaccessとhrefは大文字と小文字の記号でリンクしています

私は分析に役立つ中間的なスクリプトを書いています。これは、.htaccessファイルである:

RewriteCond %{HTTP_HOST} q.(.{5})\.example.com 
RewriteRule (.*) http://www.example.com/this/r/%1 

を(URLのはofcourseの変更)しかし、どういうわけか、ユーザがq.Fbbbc.example.comに移動した場合、彼はのhttpで終わる:// WWW。 example.com/this/fbbbc(小文字のFを使用)

これを修正する方法はありますか?私のいくつかのクライアントが既に問題を抱えていて、このルールが小文字に変換されるとは思わなかった。

関連する問題:フロントエンドで私は基本的に<a href="http://q.Fbbbc.dim.io">click</a>を使用してユーザーに機能をテストさせるが、Google Chromeはこのリンク上に小文字のURLを表示します。クロムのコードは実際には大文字のFを表示します...どんな考えですか?

+0

さらに悪いです。 Bit.lyは同じ方法を使用しますが、リンクをホバーすると実際に大文字も表示されます。 – xaddict

+0

書き直しには何も問題はありません - http://htaccess.madewithlove.be/をご覧ください。 – scibuff

+0

はい、私は何も間違っていませんでした。それはドメインの前に来る文字と関係がありますか? – xaddict

答えて

1

RFC 3986 - Uniform Resource Identifier (URI): Generic Syntaxをお読みください。具体的にはSection 3.2.2. - Host。あなたは次の声明に遭遇するでしょう:The host subcomponent is case-insensitive.

短いで:'AA.ExAmPlE.Org' === 'aa.example.org'。小文字は、標準化された形式である。大文字のホスト名があなたのスクリプトに到達する場合、(少なくとも)ブラウザ、(b)中間プロキシ、(c)httpサーバに依存します。少なくとも2つのコンポーネントはあなたがコントロールできません。

大文字と小文字を区別したい場合は、スラッグ(Fbbbc)をパス名:http://q.example.org/Fbbbcに移動する必要があります。

+0

はい私はそれをしました:)私は大文字小文字の区別がないことを知るとすぐに。解明してくれてありがとう! – xaddict

1

最初のスラッシュが小文字になる前に、私たちのサービスプロバイダとあなたのURLにあるすべてのことを話しました。 apple.comが登録されている場合、この方法でAPPLE.comに登録することはできません。サブドメインについても同様です。 WWW.example.comはwww.example.comとまったく同じです。教訓!

+0

これは完全には当てはまりません。ホスト名は小文字と見なされます。権限のuserinfoコンポーネントは、大文字と小文字を区別します。 – rodneyrehm

+0

この場合、userinfoコンポーネントは何でしょうか?要約はhttp(s)://aaa.bbb.ccc/xxxです。ここで、a、b、cは小文字で、xは両方とも小文字でなければなりません。 – xaddict

+0

例にuserinfoコンポーネントがありません。 'foo:// a:b @ example.org'には、ユーザ情報' a:b @ 'が含まれています。 – rodneyrehm

関連する問題