Last.FM veya Wikipedia gibi bir topluluk URL tarzı ile ne yapmalı?

3 Cevap php

Ben URLs karakterleri ile nasıl çalışması gerektiğini anlamaya çalışıyorum, bu benim kullanıcı içeriği depolamak ve ({[o adını digiting tarafından içeriğin sayfaya gidebilirsiniz bir site inşa ediyorum çünkü 1)]}.

bu yüzden, Wikipedia veya Last.FM web sitesi gibi bir şey.

Ben sitede görmek, kullanıcı
http://it.wikipedia.org/wiki/Trentemøller ve sanatçının sayfa ulaşmış olabilir gibi bir şey yazabilirsiniz.

after the page is loaded, if I copy the URL i see written as:
http://it.wikipedia.org/wiki/Trentemøller but if I paste it into a text editor, it will be pasted as
http://it.wikipedia.org/wiki/Trentem%C3%B8ller

böylece karakter ø %C3%B8 olarak yapıştırılır

Tabii aynı (sanatçı Takeshi Kobayashi sayfa) böyle URL'ler için

http://www.last.fm/music/小林武史
http://www.last.fm/music/%E5%B0%8F%E6%9E%97%E6%AD%A6%E5%8F%B2

Ben rakam birinci veya ikinci olursa, sayfa her durumda çalışır, neden?

Ben .htacces ve mod_rewrite ile bir şeyler yapmak gerektiğini düşünüyorum ama emin değilim, özel karakter otomatik olarak url özel karakter dönüştürülür?

ve sonra, ben PHP içerik adı ile doğru sorguyu yapalım nasıl yapabilirim?

Ben böyle bir tablo varsa

table_users
- username
- age
- height
- weight
- sex
- email
- country

Ben mümkün olduğum mod_rewrite http://mysite.com/user/bob table_users den username bob olsun ama ne ([{yaklaşık gibi bir adres yazmak 4)]}?

Burada yapmam gereken ne düşündüklerini basit bir örnek göstereceğim:

#.htaccess
RewriteEngine On
RewriteRule ^(user/)([a-zA-Z0-9_+-]+)([/]?)$ user.php?username=$2

<?php
// this is the page user.php
// this is the way I use to get the url value
print $_REQUEST["username"];
?>

Bu çalışır, ancak sınırlı oluyor [a-zA-Z0-9_ + -], ne zararı çok fazla güvenlik olmadan diğerleri gibi tüm karakter ile daha uyumlu olması için?

Birisi sorunları önlemek için bir yol biliyor muydunuz?

3 Cevap

Tarayıcıların çoğu urlencode() 小林武史 için %E5%B0%8F%E6%9E%97%E6%AD%A6%E5%8F%B2.

Lütfen .htaccess mod_rewrite kuralları Reguarding, gibi bir şey kullanarak kabul var:

RewriteEngine On
RewriteRule ^(user/)(.+?)[/]?$ user.php?username=$2

Urlencode ve urldecode deneyin

Edit:

İşte Visualy url kodlama ve çözme Açıklama

http://blog.neraliu.com/wp-content/uploads/2009/10/url-encoding.png

Bildiğim kadarıyla anlamak değil ASCII karakterlerle her URL benzersiz ASCII tabanlı url eşleştirilir. Bu aslında istemci tarafında bir özelliktir. Bakmak Lütfen: http://kmeleon.sourceforge.net/bugs/viewbug.php?bugid=631 örnekler ve bu bir coverting RFC'lere Linkleri görebilmek için.