Hangi alternatifler ben. Htaccess olmadan bir web sitesi navigasyon geliştirmek için var?

5 Cevap php

Sadece teoride: Hemen hemen tüm modern web siteleri bu şekilde çalışır:

somedomain.com/layer1/layer2/action

Örneğin:

http://stackoverflow.com/questions/ask

Genellikle bu. Htaccess ve ModRewrite Engine ile yapılır. Bir süre önce ben şu php çıktı bir şey açıklanan bir makale üzerinde tökezledi. Artık adını hatırlamıyorum. PHP kod Bu parça şu anda açılan URL farkındaydı. Bu adlandırılan dosya vb ne, ikinci dizin ne, ilk dizin nedir, ne denir TLD, ne denir etki söylemek mümkün

Ben Kohana Çerçeve bu teknolojiyi kullanan biliyorum, ama nereye bakmak bilmiyorum. Bu aşina herkes?

5 Cevap

What you mean is making use of the PATH_INFO environment variable. See e.g. here

. Htaccess ayarları erişimi olmadan, ancak her zaman bu yöntem ile yolu bir filename.php sahip olacaktır:

www.domain.com/filename.php/questions/ask/

Ne çoğu durumda. Htaccess yüzeyinin altında oluyor aradığınız budur. Birçok durumda. Htaccess dosyası sadece kendisi bir denetleyici, bir yöntem temsil geçirilen değerleri işlemek için hazırlanmış bir index.php dosyası, delegelerin görevi ve parametreleri.

Sadece url ayrıştırmak ve oradan değerleri işlemek için kendi. Php dosyası oluşturmak olamazdı neden görmüyorum. . Siz sadece olsa tüm adresler daki üs olarak php dosyayı kullanmak gerekir:

www.mysite.com/index.php/controller/method/parameter1/parameter2

Apache hatası belge ile oynayabilir, ama sadece (yeniden yazma gibi) bir hack değil, temiz bir çözümdür.

HTTP başlıklarını bir arada kullanabilirsiniz, ancak bu bazı web sunucuları üzerinde güvenilmez olabilir. HTTP başlıklarını sunucu üzerinde mevcut olduğunu görmek için, sadece bu ile bir sayfa yapmak:

<?php phpinfo(); ?>

PHP Değişkenler bölümünde arayın, özellikle bu potansiyel kullanabilirsiniz olanlar:

_SERVER["HTTP_HOST"]
_SERVER["SCRIPT_NAME"]

Front controller pattern bakabilirsiniz.

Esasen tüm istekleri URL çözer ve sonraki eylem karar tek bir PHP dosyasına yönlendirilmiş olsun.

Bu btw PHP özgü değildir.