2011-12-02 17 views
0

私は、部品番号のデータベースを持つウェブサイトを持っています。私のマネージャーは、入力できるようにしたいと考えています:php#と/記号を含むURLを読む方法

www.site.com/products/part# 

このページは自動的に関連するページに移動します。

は今、私はそれがURLを取り、にページをMOD-書き換える必要があり:

www.site.com/search.php?sku=xxxx 

とPHP srcriptます$ _GET SKUと検索を行い、問題があり、一部の部品番号は#を持っており、その中/シンボル、例えば:

www.site.com/products/VS816UT#ABA 

私はMOD-書き換えを持つ任意のスラッシュを回避することができますが、ブラウザがそれを見ることができます$ _GETの前に#記号を取り除きます。

どうすればいいですか?

答えて

1

#記号は、Web標準に従って、ブラウザ内のアンカータグ用に予約されています。

3

ハッシュ(#)を過ぎたものは、Webサーバーに送信されません。あなたはこれを回避したい場合は

、なぜスラッシュで#ABAを追加していない:

www.site.com/products/VS816UT/ABA 

、適切にあなたのPHPファイルにマップするためにmod_rewriteを使用しています。

0

そこににする必要はありませんが、あなたが望むのは/ products /のためのハンドラです。これはURLの末尾の部分を取得します(codeigniterのようなフレームワークはそれで良いです)。

必要なだけURLに基​​づいてディスパッチする単一のページハンドラが必要です。

残念ながら、少なくとも一部のブラウザでは、とそれ以降のすべてが取り除かれます。私は#でURLを使用してテストを行なったし、ブラウザがtcpdumpをして送信したものに監視し、これを得た:

URL:P/O

http://127.0.0.1/onepage/products/zss#www?b=A#B 

のtcpdump:

おそらく
GET /onepage/products/zss 

、サーバ - これが機能する唯一の方法は、サーバーへの接続です。

関連する問題