Как маршрутизировать различные псевдонимы доменов, чтобы извлекать их собственные папки с собственными файлами PHP веб-страницы? - PullRequest
3 голосов
/ 17 февраля 2011

представьте себе корень сервера, на котором несколько псевдонимов, таких как website.nl;website.de;и т. д. все они направляют к корню корень \ httpdocs \ с этим физическим хостингом:

httpdocs\...
httpdocs\holland\    # webpages in Dutch   (home.php | contact.php | etc)
httpdocs\deutsch\    # webpages in English (home.php | contact.php | etc)
httpdocs\images\     # all multilingual webpages share the same images
httpdocs\js_css\     # all multilingual webpages share the same scripts/layout
httpdocs\.htaccess   # here be a clean root, nothing else than .htaccess

Таким образом, отличаются только веб-страницы .php: все остальные разделяют одно и то же!Теперь представьте, что вы хотите сконфигурировать .htacces с помощью скрипта apache, чтобы сделать «пробел», если хотите, между корнем и папкой, позволяя набирать его в браузере и под водой, выбирая нужную веб-страницу php, но сохраняяболее короткий URL в браузере:

website.nl/home.php
// извлеченные файлы должны исходить из папки holland, связанной с website.nl

website.de/home.php
// извлеченные файлы должныприходят из папки deutsch, связанной с website.de

(в отличие от просмотра в браузере: website.nl/holland/home.php | website.de/deutsch/home.php)

Какая строка сценария apache будет делать такое?
Спасибо: очень признателен!

Ответы [ 2 ]

3 голосов
/ 17 февраля 2011

Вам необходимо установить "mod_rewrite" в apache.Предполагая, что вы это сделаете, поместите файл .htaccess в корневой каталог этой учетной записи (вероятно, :) ~/public_html/.htaccess

, а затем поместите его в этот файл

RewriteEngine on

RewriteCond %{HTTP_HOST} ^website.nl(.*)$ [OR]
RewriteCond %{HTTP_HOST} ^www.website.nl(.*)$
RewriteRule ^.*$ "http\:\/\/www\.website\.nl\/holland\/$1" [L,P]

, а затем повторите перезапись.условие для website.de

По сути, это говорит о том, что возьмите раздел после части website.nl и вставьте его в часть после Голландии, но буква «L, P» говорит, чтобы сделать молчаливое перенаправление и сохранитьпользователь по тому же адресу, с которого он вошел.

goodluck!

2 голосов
/ 17 февраля 2011

Предполагая, что вы имеете полный контроль над конфигурацией сервера, я бы предпочел установку без mod_rewrite.Вместо этого я бы использовал два отдельных VirtualHost для каждого сайта страны и Alias директивы для сопоставления общих каталогов.В сокращенной версии, что-то вроде этого:

<VirtualHost website.nl>
DocumentRoot /httpdocs/holland   
ServerName website.nl

Alias /images /httpdocs/images
Alias /js_css /httpdocs/js_css
</VirtualHost>

<VirtualHost website.de>
DocumentRoot /httpdocs/deutsch
ServerName website.de

Alias /images /httpdocs/images
Alias /js_css /httpdocs/js_css
</VirtualHost>

это позволяет вам свободно работать на обоих языках и добавлять новые ресурсы и URL-адреса без необходимости что-либо редактировать - только при добавлении общего ресурса выприкоснитесь к директивам Alias и перезапустите сервер.

...