2012-05-10 43 views
21

bu göreli konumu html başlığı tüm platformlarda tüm tarayıcılar ile kesinlikle uyumlu mu? Herhangi bir standart var mı? YaniBaşlık Yer göreli yol uyumluluğu

Location: some_script.php?la=2&po=2030 

, her zaman geçerli dir veya değil some_script.php yönlendirme yapacaktır?

+0

, hatta başlığın bilmeyecek tarayıcı, sadece bunu fark eder yeniden yönlendiriliyor çünkü PHP sunucuda çalıştırılıyor. – 11684

+3

@ 11684: İstemcinin tarayıcısı kesinlikle bir Konum başlığı alacaktır. Konumunu değiştirmeye nasıl karar verdiğini düşünüyorsunuz? – webbiedave

+1

@ 11684 Yanlışınız. PHP sunucuda çalıştırılır, evet. Ancak PHP, başlığı tarayıcıya (istemci) gönderir ve müşteri istediği şeyi yapar. [HTTP içindedir desteklenen Nasıl yaygın şeması göreli URI'ler 301 yönlendirmeleri] arasında –

cevap

17

standart bu olacaktır: sorunuzun cevabı Ama önce ya da tam bir URL'de bir çizgi koymazsan, evet bu mevcut klasörde sayfa X yönlendirilecek

header('Location: http://www.mywebsite.com/yourpage.php?id=32', TRUE, 302); 

.

İşte yapmanız her web sitesi için ne öneriyorsun bir fikir. Birincil dosyası (config ya da her türlü gibi kullandığımız ana php dosyası) olarak, böyle bir şey yaratmak:

define('URL', 'http://www.mywebsite.com/'); 

Eğer bir yeniden yönlendirme, bir bağlantı ya da her neyse oluştururken Yani, bunu yapmak:

header('Location: '.URL.'yourpage.php?id=32', TRUE, 302); 

DÜZENLEME: Kasım aşağıda @jordanbtucker tarafından belirttiği gibi 2017 HTTP spec Yer başlığında göreli URI'ları izin vermek (Bu yazı 2012 yılından itibaren ise) Haziran 2014'te güncellendi.

+1

evet, zaten ** göreceli ** varyantı ve benim için onun çalışmalarını kullanıyorum, ama tüm kullanıcılar için işe yaramayacağından şüpheliyim. Ben mutlak yolunu almak için url'nin eklenti bölümünü yapabilirsiniz, ancak biz http://domain.com/some_script.php her zaman some_script.php ve onun değil çünkü onun, yerel makinede bu sctipt debbugging için biraz zahmetli verecek URL'ye SERVER_HOST eklemek için sorun, ancak alt klasördeki yerel makine komut dosyasında ... – abrahab

+1

Tamam. Sonra http://tools.ietf.org/html/rfc2616#section-10.3.3 'e bir göz atmanızı öneriyorum. İyi yol, en iyi yol ve çalışmanın nasıl olacağı, tam URL'yi sağlamanız gerektiğidir. –

+0

@abrahab Bilmiyorum neden bir yerel makine alt klasöründe tam URL'ye sahip olmak bir sorun? –