Apache / PHP - alias giden URL

3 Cevap php

Benim PHP kodu başka bir web sitesinde bir URL'ye başvurular var. Ben (XAMPP kullanarak) yerel olarak benim web sitesi test ediyorum. O Apache otomatik olarak localhost için bu diğer web sitesinin etki yerine almak mümkün mü?

Örneğin benim PHP kodu olabilir:

<?php echo "<a href='http://www.othersite.com'>Click me</a>"; ?>

Ve ben bu diğer ad için benim yerel Apache için istiyorum

<?php echo "<a href='http://localhost'>Click me</a>"; ?>

Bu mümkün mü?

[Değiştir] Sadece netleştirmek için, ben PHP kodu değiştirmeden bunu yapmak istiyor. Mümkün olabilir, ancak PHP kodu kesmek zorunda kalmadan lokal basit test yapar gibi değer soran düşünce olmayabilir.

Cheers, Dan.

3 Cevap

Apache sanal konak için takma adlar destekler. ServerAlias directive kullanmak ve sadece diğer etki alanı için bir takma ad oluşturun.

Sen Localhost'a diğer etki noktasına (sen? Hangi işletim kullanıyorsanız) (bu yüzden düzenli bir eski DNS araması yapmaz) hosts dosyasını güncellemeniz gerekir. Yeniden Apache ve iş olmalıdır.

Bu Apache için bir iş gibi gelmiyor; aşağıdaki gibi bile mod_rewrite, olaylar dizisi olarak değil:

  1. PHP komut www.othersite.com referans ile, verilen kodu kullanarak sayfa için HTML oluşturur
  2. Apache SADECE kullanıcının tarayıcısına bu kodu gönderir.
  3. Kullanıcı linke tıkladığında, BROWSER www.othersite.com erişmeye çalışır. Apache bu adımı ile bir ilgisi yok.

Burada ne gerek PHP komut dosyası tarafından oluşturulan çıktı-sürecini göndermek için bir şeydir. PHP zaten bunu yapabilirsiniz: sanırım. Sen istemciye göndermeden önce çıktıda işlem yok bir Apache modülü için bakmak olabilir, ancak PHP kullanarak konum eğer gereksiz bulunuyor.

Silmaril89 tarafından önerilen çözüm benim için oldukça ses görünüyor; Eğer "test modunda" üzerinde konum ve buna göre URL'leri oluşturmak olmadığını söyleyen bir değişken var.

Ben hiç bunu yapmak istiyorum ne yapmak istersiniz neden emin değilim. Ama deyim söyleyerek eğer bir değişken oluşturmak ve oluşturmak ve olabilir.

if (you are localhost)
    $p = "localhost"
else 
    $p = "www.othersite.com"

<a href='http://'.$p.'>Click me</a>

bir sözdizimi açısından doğru olacak değil, ama bu temel pseudocode bulunuyor