2011-02-10 15 views
34

URL yolunda karma karakter (#) göndermem gereken bir PHP projem var. (http://www.example.com/parameter#23/parameter#67/index.php) Üretilen kodun karmayı% 23Karma karakterler içeren yolları sorgu dizelerine dönüştürmek için mod_rewrite özelliğini kullanma

'a dönüştürmesine izin vereceğini düşünmekteyim. Ancak şimdi, urlencoded hash bile tarayıcıyı her şeyi URL fragmanı (veya sorgu) olarak sağa doğru işlemeye zorladığını görüyorum.

Çatışmayı geçmek için bir yol var mı, yoksa urlen kodundan önce bir karakter değişimi yapmam gerekiyor mu?

Düzenleme (2017 Eyl 19) eklemek için:

Ben yanlış soruyu soruyordu çıkıyor. Sorunum, yol içindeki karma karakterin kullanılmasıyla (kodlama çalışması işe yaramazsa) değil, bir sorgu dizesine dönüştürmek için mod_rewrite kullanılmasında değildi. RewriteRule içinde yeniden kodlamayı başaramamıştım. Başlığı eşleşecek şekilde düzenleyeceğim. İşte

ben kullanıyordum yeniden yazma kuralı: I B etiketi ekledi kısa sürede

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

, doğru çalıştı:

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

Bu URL'yi hangi yöntemle kullanıyorsunuz? – Gumbo

+0

Üretilen kodun bunu% 23 olarak değiştirmesi gerektiğine inanıyorum, örnek bir kod verebilir misiniz? –

+0

Dinamik olarak oluşturulmuş PDF'lere statik bağlantılar oluşturuyorum. Yol öğelerini $ _GET içine geçirmek için modrewrite kullanıyorum. PDF'yi oluşturmak için gereken ürün parrametreleridir. Ürünlerin bazılarında ürün adlarında karma etiketler var. – Mark

cevap

84

Encode% 23

ile URL'de Hash
http://twitter.com/home?status=I+believe+in+%23love 

"Ben #love inanıyorum" 10

URL Kodlama Referansı: http://www.w3schools.com/tags/ref_urlencode.asp

+0

Teşekkürler adamım! Bu oldukça yeni bir cevaptır :) – Spider

+2

Bu çalışma, doğru cevaplanması çok uzun sürdüğü için şaşırtıcı oldu – benjineer

+0

Bu cevabı doğru olarak işaretlendi. İlk defa sorduğumda tarayıcılarda bir değişiklik olup olmadığını merak ediyorum. Kesinlikle% 23 denedim. – Mark