php
  • apache
  • alias
  • 2010-03-24 67 views 0 likes 
    0

    在我的PHP代碼中,我已經引用了另一個網站上的URL。我在本地測試我的網站(使用XAMPP)。是否有可能讓Apache自動替換本地其他網站的域名?Apache/PHP - 別名傳出網址

    例如我的PHP代碼可能是:

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

    而且我想爲我的本地Apache來此別名

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

    這可能嗎?

    只是爲了澄清,我想在不更改PHP代碼的情況下執行此操作。可能不可能,但認爲值得提問,因爲它可以使本地測試變得更簡單,而不必在PHP代碼中進行黑客攻擊。

    乾杯, 丹。

    回答

    1

    Apache支持虛擬主機的別名。使用ServerAliasdirective併爲其他域創建一個別名。

    您必須更新您的主機文件(您使用的是什麼操作系統?),將其他域指向本地主機(因此它不會執行常規的舊DNS查找)。重新啓動Apache,你應該開展業務。

    +0

    很好,工作! :-)我正在使用WinXP。主機文件位於「Windows \ System32 \ drivers \ etc」中。感謝那 :-) – Dan 2010-03-24 18:11:09

    -1

    我不知道爲什麼你會想要做你想做的事情。但是你可以創建一個變量並創建,如果聲明說。

    if (you are localhost) 
        $p = "localhost" 
    else 
        $p = "www.othersite.com" 
    
    <a href='http://'.$p.'>Click me</a> 
    

    是不會從語法的角度來看是正確的,但它的基本僞

    +0

    對不起,我可能沒有很好地解釋它(將更新原始帖子來澄清我的意思)。我不想更改PHP代碼。如果我可以保留原始URL,它只會使本地測試變得更加容易。 – Dan 2010-03-24 17:55:01

    0

    它聽起來並不像Apache的工作;甚至在mod_rewrite的,因爲事件發生的順序如下:

    1. 你的PHP腳本使用您提供的代碼頁創建HTML,參照www.othersite.com
    2. 阿帕奇只發送驗證碼到用戶的瀏覽器。
    3. 當用戶點擊鏈接時,BROWSER嘗試訪問www.othersite.com。你的Apache與這一步無關。

    這裏需要的是後處理由PHP腳本生成的輸出。猜猜看:PHP已經可以做到這一點。您可以在將輸出發送到客戶端之前查找處理輸出的Apache模塊,但如果您使用PHP,則它是多餘的。

    Silmaril89提出的解決方案對我來說聽起來很不錯;有一個變量,告訴你是否在「測試模式」,並據此建立你的網址。

    +0

    「你可以尋找一個Apache模塊,它在發送給客戶端之前在輸出上進行處理,但是如果你使用的是PHP則是多餘的。」<---這聽起來很像我所追求的。我不想更改PHP源代碼(請參閱我在初始文章中的編輯)。對不起,如果我不清楚。 – Dan 2010-03-24 17:58:51

    相關問題