PHP adres çubuğuna adresini değiştirmeyi önlemek için nasıl

7 Cevap php

I have one problem with the address bar (in the browser). The homepage url of my website looks like this: http://localhost/Website/index.php

Ben yazarsanız .../Website/home.php o home.php sayfa yükler. Ben onun adresini biliyorsanız eğer kimse istedikleri web sayfasının herhangi gidebilirsiniz eğer güvenli olmadığını düşünüyorum. Ben adres çubuğuna otomatik url yönlendirmeyi engellemek istiyor. Birisi yazarsanız kimse beni bu yüzden yardımcı olun .../home.php kendisine tarayıcı yönlendirir adresi index.php varsayılan sayfa olarak.

7 Cevap

World wide web bütün kavram her kaynak (örneğin, her bir web sayfası) benzersiz bir kaynak tanımlayıcı (adres) sahip olmasıdır. Bu internet nasıl ayrılmaz bir parçasıdır ve ona uyma gerektiğini, yerine bunu önlemek.

Geri ana sayfa için güzel bir büyük bağlantı var ve farklı bir sayfada arazi ve ne istediklerini bulamazsa insanlar kullanmak emin olun.

Bu yardımcı olur umarım.

Kısacası: Eğer bunu yapamazsınız. Diğerleri de belirtildiği gibi, PHP tarayıcı (örneğin, birisi URL'yi değiştirmek önlenmesi) kontrol edemez anlamına gelir bir server side language olduğunu. Okuyun ve sunucu tarafında ve istemci tarafında dilleri arasındaki farkı bilmek almak için How does PHP work? olarak bağlantıları izleyin.

Eğer WWW nasıl çalıştığını ve bu URL'ler hakkında ne temel bir anlayış almak için Wikipeda makaleler World Wide Web, Uniform Resource Locatveya(URL) ve Web Server de ilginç olabilir.

Ama hangi ulaşılabilir dosyaları kontrol edebilirsiniz. Iki yol vardır:

Web server configuration

Çoğu (her?) Web sunucusu dosyaları (erişim kontrolü aka) erişilebilir olmalıdır hangi kontrol etmek için kurallar yapılandırmanızı sağlar. Onun Apache web server ile bunu yapmak için nasıl bir örnektir.

PHP: Front Controller

Ayrıca, doğrudan PHP (ve küçük bir web sunucusu yapılandırması) ile yapabilirsiniz. Sihirli onu Front Controller pattern olduğunu anahtar kelime. Bu, örneğin bir uygulamanıza tek bir giriş noktası olarak davranan bir sınıf. Bu demektir ki, her isteği örneğin karşı

 http://localhost/Website/home.php

veya

http://localhost/Website/foo/bar.php

için (iletilir, ancak adı istiyorum) yönlendirildi tarafından işlenir

 http://localhost/Website/index.php

So in the end you can and have to decide which content the user gets to see if he tries to access a certain URL.
This gives you more control over the (look of) URLs but you have to put more effort into it to configure it.

Bu nasıl ilgileniyorsanız, ben bu desen uygulayan Zend Framework bir göz öneririm.

Open question...

Eğer can Bunu rağmen, soru bunu yapmak zorunda olup olmadığıdır. Eğer istemiyorsanız home.php erişilebilir olması için, neden bunu ilk etapta web sunucusu koymak mı?

Ya da başınızı bir web sitesinin yapısı yanlış bir resim var. A single sitesi, örneğin multiple sayfaları (çoğu kez), oluşur

index.php   // is the main page
about.php   // is about the site veyayou
news.php    // contains the latest news you provide
archive.php // older news veyaarticles
...

It is even wanted that a user / visitveyacan access these pages directly by entering the URL into the address bar veyavia a bookmark. This is how a website veyathe WWW works.

PHP bunu yapamaz; Bir sunucu tarafı teknoloji ve böylece tarayıcının davranışını değiştiremezsiniz. Basitçe dizindeki diğer dosyaları koymayın ve tarayıcı bunu gezinmek için çalıştığınızda Böyle bir dosya yok kullanıcıyı bilgilendirecektir.

Hatta çerçeveler olmadan bu sonuç alabilirsiniz. Dinamik içerik yüklemek için javascript ve ajax kullanırsanız url değişmez.

Ben Google'ın uğruna bu tavsiye asla iken bu bunu yapmanın en güzel yolu ve hala PHP ile iyi çalışacak

Ben Sohnee tavsiye alacaktı, ama sen gerçekten istiyorsanız HTML çerçeveleri kullanarak yanılsama yaratabilir.

Geçenlerde yayınlanan cevapları katılıyorum.

İhtiyacınız yoksa Ama HTML o, sizin URL'ler artık bir değişiklik yüklenir kez, FLASH veya Java Applet geçebiliriz.

Yapmak istiyorum Garip bir şey ama (küçük siteler için bir şey ama iyi değil) bir simple yol vuruşu kullanmak için (Yer: xxxx).