讓wordpress按“相對路徑”訪問的方法

來源:互聯網
上載者:User

 wordpress不支援相對路徑,這樣非常不利於多網域名稱的訪問。用什麼辦法可以讓wordpress按相對路徑來運作呢?

很多人的方法是:登入後台-setting-options,將wordpress url設成“/”引號裡面的)就可以了,千萬不能留空,否則系統會讓你重新安裝wordpress,確定後,wordpress url 那一欄是空的,但是在資料庫裡,siteurl的值是“/”。

以上的方法在新版的wordpress裡已經不行了,於是人們又想到在資料庫裡去直接修改相應欄位為“/”。這樣貌似在很多場合下能夠奏效。

但是,按照wordpress的邏輯,是一定要使用絕對路徑的,它的很多函數都會用到home和siteurl兩個變數。簡單的把它們的值改成“/”,這樣導致問題的可能性相當大。更好的辦法是在遵守wordpress按絕對路徑訪問的設計邏輯下,想另外的辦法。

這個辦法其實很簡單,就是先判斷訪問網域名稱,然後把這個網域名稱賦予home和siteurl兩個全域變數。具體方法很暴力也很簡單,不用改資料庫,只需要在 wp-config.php 的最後加上以下語句:

<?php

$home = ‘http://’.$_SERVER['HTTP_HOST'];
$siteurl = ‘http://’.$_SERVER['HTTP_HOST'];
define(‘WP_HOME’, $home);
define(‘WP_SITEURL’, $siteurl);

?>

這樣修改後,在背景 setting-options 頁面,只能顯示而不能修改home和siteurl兩個值因為它們已經被定義成兩個常量了,呵呵),它們完全是根據訪問網域名稱顯示的。

這個方法既能使wordpress按“相對路徑”的方式訪問全站內容,又符合wordpress那個令人糾結的絕對路徑的設計邏輯。應該是最好的解決辦法了。不過,需要說明的是,這樣修改後,編輯時插入的圖片等媒體檔案的路徑仍然是絕對路徑。插入後需要手工改一下,把路徑的網域名稱部分去掉就ok了。

本文出自 “結構化思維” 部落格,請務必保留此出處http://yuanxi.blog.51cto.com/2149074/980913

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.