PHP yönlendirir URL'den dahil

4 Cevap php

Bunu yaparken barındırılan siteleri: Ben ağımızda biz (çok okuyun) çok var kötü sitation miras ettik:

include "http://www.example.com/news.php";

Evet, bu vb, güvensiz, kötü olduğunu biliyorum, ve bu olmalıdır echo file_get_contents(...); ya da buna benzer bir şey ("news.php" çıkış sadece HTML), ama ne yazık ki bu onların ne kullanın şimdi ve biz kolayca değiştiremezsiniz.

Bu düne kadar, ince çalışmak için kullanılır. Biz 301-yönlendirmek için sadece example.com tüm www.example.com istekleri başladı. PHP insanlar www sürümünü içerir bu yönlendirme takip görünmüyor, bu yüzden bu yönlendirme siteleri bir sürü tatili.

O Özetle: bu yönlendirmeleri takip etmek PHP almak için bir yolu var mı? Ben sadece example.com tarafında veya sunucu çapında yapılandırma ile değişiklik yapabilirsiniz.

4 Cevap

Siz bir yorum, şunları söyledi: "Ben can gidin ve tüm içeren değiştirmek, ama sadece bir sürü iş olurdu".

Evet. Yani "güvensiz, kötü, ama-ben-düğünle-a-neden-to-değişim-bunun olması kod" Neler sizi ısırmaya geri geliyor. Bu bir sürü iş olacak; ama şimdi bunu değiştirmek için zorlayıcı bir neden yoktur. Kolay olmasa da bazen, eski bir pisliği temizleme, bunun dışında basit yoludur.

Edit: Ben "bu kodu ve senin hatan" demek istemedim - daha doğrusu, "kötü kod sık sık düzeltmek için bir sürü iş olduğunu, ama genellikle sonsuza etrafında kesmek kazık tutmak için daha az iş var , sadece "tür-çalışma tutmak için.

Bu PHP'nin HTTP fopen korumalar daha iyi çalışır - "oluyor ve bunu değiştirerek" gelince, ben kullanıyorum cURL öneririz.

Eğer kıvırmak kullanamaz mıyız? Curl_setopt yılında yönlendirmeleri takip için bir seçenek vardır.

Kullanıcının yönlendirme http repsonse ile başlayalım.

<?php
error_reporting(E_ALL);
var_dump( get_headers('http://www.example.com/news.php') );
// include 'http://www.example.com/news.php'

Çıktı yerde ilk giriş ve Location: http://example.com/news.php olarak HTTP/1.0 301 Moved Permanently içermelidir.

Ben sadece bunlardan herhangi başlıkları ve ne değildir takip sanmıyorum ... PHP tarafından sağlanan bu çözümler herhangi bir yardımcı olacağını sanmıyorum. Belirli bir istek sonucu için soruyorsun ve bunu var: Buna değer ne için, ben bu davranış doğru olduğunu, olsa, sizce. Sonuç başka bir yere bakmak için söylüyorum gerçeği, kendi içinde ve geçerli bir sonucudur.

Ben olsaydım, cURL bakmak istiyorum. Orada bunun için bir PHP uzantısı ve bu başlıkları takip ve almak için çalışıyoruz yere ulaşmak için bunu söylemek sağlayacak. Bu kullanışlı değilse (gibi, kesinlikle, olumlu Eğer o anda bir yaklaşım kullanmak zorunda), sen 'kaynak' sunucuda yönlendirmeleri dönmek gerekir: belki de dayalı bilgi veya yönlendirme dönüş olabilir IP adresi ya da benzer bir şey isteyen?