PHP URL-функции и поддоменов - PullRequest
5 голосов
/ 27 ноября 2011

У меня есть сайт thenoblesite.com.Он имеет несколько поддоменов, т.е.

download.thenoblesite.com
wallpaper.thenoblesite.com
и т. Д.

Страницы для поддоменов присутствуют в основных htdocsпапка, например

httpdocs / download <- download.thenoblesite.com <br>httpdocs / wallpaper <- wallpaper.thenoblesite.com </p>

Проблема в том, что я использую $_SERVER['DOCUMENT_ROOT'] . '/css'; для папки css и других общих папок (графика, включает в себя, сценарий и т. Д.).Однако на странице субдомена download.thenoblesite.com, $_SERVER['DOCUMENT_ROOT'] будет ссылаться на корневую папку download.thenoblesite.com, а не на главную корневую папку thenoblesite.com, в которой присутствуют css, графика и включаемые папки.

Я должен разместитьта же графика, CSS и включает в себя папки отдельно на всех поддоменах.Каждый раз, когда я обновляю сайт, мне приходится копировать общие папки во все папки поддоменов.

Другая связанная с этим проблема заключается в том, что я должен использовать абсолютные ссылки для папки загрузок большого размера, например, для VLC media player. Я должен использовать thenoblesite.com/download/vlc.exe, или мне также нужно дублировать папку загрузки большого размера во всех папках поддоменов.,Этот метод излишне увеличивает размер сайта, создает путаницу при обновлении сайта и не выглядит хорошей практикой программирования.Есть ли какое-либо возможное решение PHP, чтобы я мог использовать одну и ту же CSS, изображения, загрузки и включает в себя папку для всех поддоменов ....

Ответы [ 2 ]

7 голосов
/ 27 ноября 2011

Я не уверен, что это то, что вас может заинтересовать, но вы всегда можете создать новый поддомен и назвать его чем-то вроде style. [Domain], создать новую переменную в вашем конфигурационном файле и указать на это.Таким образом, все изображения, CSS-файлы и т. д. хранятся в одном месте, и если ваш трафик увеличивается, вы всегда можете переместить этот поддомен в CDN и т. д., так что он действительно настраивается.

ОБНОВЛЕНИЕ

ОК, так что вы можете просто использовать новую переменную в вашем конфигурационном файле, как показано ниже:

$_config['http'] = 'http://www.yousite.com/';

Теперь вы можете просто использовать эту переменную, чтобы указывать на все ваши загрузки и т.д. на основном сайте, а не на каждую.указывая на папку субдомена.и если вы хотите быть более гибким, вы также можете добавить еще несколько папок css или js, например:

$_config['http'] = 'http://www.yousite.com/';
$_config['css'] = $_config['http']."css";
$_config['js'] = $_config['http']."js";

, решение выше также поможет вам, если вы решили переместить файлы или просто переместить определенноеэто хорошая практика, если вы можете принять ее.

1 голос
/ 27 ноября 2011

Возможно, вы сможете использовать псевдоним в htaccess (или конфигурации сервера):

Alias /images /home/username/public_html/images

Если это невозможно, вы можете переписать все запросы к / изображениям через htaccess:

# Untested - should get you on the right track though
RewriteEngine On
RewriteRule ^/images/(.*)$ http://yourdomain.com/images/$1 [R=301,L]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...