Bilmek istediğin her şeye ulaş

Site sayfalarını 'profile.php?id=1115' şeklinde değil de kullanıcıların adlarına göre 'site.com/mrtavus' şeklinde nasıl yapabiliriz?

Mesela facebook ve inploid bu tekniği tüm sayfalarında kullanıyor. Bunu php'de hangi teknik ile yapabiliriz?Düzenle

RewriteEngine On
RewriteRule ^anasayfa.html$ index.php [L]
ReWriteRule ^(.*) profil.php?id=$1 [L,NC]

  • Paylaş
PHP tarafında bunun nasıl yapıldığını bilmiyorum ancak bu işlem "URL Routing" ve "URL Rewriting" olarak geçer:
en.wikipedia.org/wiki/rewrite_engine

ASP.NET tabanlı uygulamalarında url routing için yapılması gereken işlem çok zor değil. Application_Start bloğunda (yani uygulama başlatıldığında) kısaltmak istediğiniz url'leri ve bunların pattern'lerini belirleyerek uygulama başlangıcında bunları register edersiniz.


Uygulama başlangıcında:

protected void Application_Start(object sender, EventArgs e)
{
//Code that runs on application startup
RegisterRoutes(RouteTable.Routes);
}

Pattern'lerin kayıt oluşturulması:

protected void RegisterRoutes(RouteCollection routes)
{
routes.Ignore("{resource}.axd/{*pathInfo}");

routes.MapPageRoute("siteLoginRoute", "login/", "~/MyLoginPage.aspx");
routes.MapPageRoute("myOtherUrl", "userprofile/{username}/", "~/MyProfilePage.aspx", false);
}

Böylece uygulamanız url'leri belirlediğiniz şekilde algılamaya başlar.

Örneğin:

//MyLoginPage.aspx çalıştırılır
mydomainname.com/login
//MyProfilePage.aspx çalıştırılır
mydomain.com/userprofile/hakank


Bunun ardından ilgili sayfada parametrelere şu şekilde erişebilirsiniz:


//mydomain.com/userprofile/hakank için username "hakank" olarak alınır.
var username = RouteData.Values["username"].ToString();

.NET'te işlem bu kadar basittir.


PHP ile ilgili olarak bunun .HTACCESS dosyası ile yapıldığını duymuştum ancak detaylarını bilemiyorum.

  • Paylaş
@zdezen arkadaşımın dediğini .htaccess dosyasına yazarak kayıt ettirdikten sonra profil.php sayfada GET methotuyla işlemine devam edebilirsin.
  • Paylaş
Bunu yapmak için eger sunucun apache ise mod_rewrite ve .htaccess ile yapabilirsin.
  • Paylaş
Sonraki Soru
HESAP OLUŞTUR

İstatistikler

1682 Görüntülenme6 Takipçi4 Yanıt