2011-02-10 14 views
34

URLのパス内にハッシュ文字(#)を送信する必要があるPHPプロジェクトがあります。 (http://www.example.com/parameter#23/parameter#67/index.php)私は、urlencodeでこれを可能にし、%23にハッシュを変換すると考えました。mod_rewriteを使用してハッシュ文字を含むパスをクエリ文字列に変換する

しかし、今では、URLフラグメント化されたハッシュでもブラウザがURLフラグメント(またはクエリ)としてすべてを扱うようになっています。

ハッシュを通過させる方法はありますか、またはurlencodeの前に文字置換を行う必要はありますか?

編集(2017年9月19日)を追加するには:

それは私が間違った質問をしたことが判明しました。私の問題は、パス内のハッシュ文字を使用することではなく(動作するエンコーディング)、mod_rewriteを使用してクエリ文字列に変換することでした。私はRewriteRule内で再エンコードできませんでした。私は一致するタイトルを編集します。ここで

は私が使っていた書き換えルールである:私はBのタグを追加するとすぐに

RewriteEngine On 
# convert path strings into query strings 
RewriteRule "^(.*)/(.*)/hashtags.php"  /hashtags.php?parameter_1=$1&parameter_2=$2 [QSA,L] 

、それが正常に働いていた:

RewriteEngine On 
# convert path strings into query strings 
RewriteRule "^(.*)/(.*)/hashtags.php"  /hashtags.php?parameter_1=$1&parameter_2=$2 [QSA,L,B] 
+0

どのように使用しますか? – Gumbo

+0

私はurlencodeを%23に変更する必要があります、あなたはサンプルコードを提供できますか? –

+0

動的に作成されたPDFへの静的リンクを作成しています。私はmodrewriteを使ってパス要素を$ _GETに渡しています。これらは、PDFを作成するために必要な製品パラメタです。製品の中には、製品名にハッシュタグが付いているものがあります。 – Mark

答えて

84

エンコード%23

と、URLのハッシュを
http://twitter.com/home?status=I+believe+in+%23love 

"私は#loveを信じています" 10

URLエンコーディングリファレンス:http://www.w3schools.com/tags/ref_urlencode.asp

+0

ありがとうございました!それはかなり新しい答えです:) – Spider

+2

これは、驚くべきことは、正確に答えるには時間がかかりました – benjineer

+0

この答えを正しいとマークしました。私が最初に尋ねたときからブラウザに変化があったのだろうかと思います。私は間違いなく%23を試しました。 – Mark

関連する問題