How can I refer to a relative subdomain in HTML?

2020-02-13 08:10发布

问题:

Let's say I have a website which is accessed by multiple domains, e.g. domain1.com and domain2.com.

If I have a relative link, such as href="/wiki", then no matter what domain name I access the website by, that link will take me to the correct place.

Lets say instead I wanted to use wiki.domain1.com and wiki.domain2.com, is there some way I can make a link to this relative to the domain name?

If not, is there an elegant way to handle a link such as the wiki link above when multiple domains point to the same server?

回答1:

No. You'll have to give the whole domain. To link from domain1.com to wiki.domain1.com, the link has to look like href="http://wiki.domain1.com".



回答2:

It is not possible with relative paths, because subdomain is in fact a whole different domain.

If you really can't use absolute URL, but can use PHP, you could try this proxy script:

<?php

if(!isset($_GET['url'])) {
    die('Missing URL!');
}

$subdomain_url = 'http://subdomain.example.com/';
$file_path = $_GET['url'];

$file_url = $subdomain_url . $file_path;

$mime = finfo_open(FILEINFO_MIME, $file_url);


header('Content-Type: ' . $mime);
header('Content-Transfer-Encoding: Binary'); 
header('Content-disposition: inline; filename="' . basename($file_path) . '"'); 

readfile($file_url);

Save it into a file, eg. imgproxy.php, and then you can link images on the other subdomain like this:

<img src="imgproxy.php?url=images/logo.png">