Сопоставление URL между двумя доменами - PullRequest
0 голосов
/ 07 ноября 2018

У нас есть онлайн-сервис с 3 клиентами: Автозапчасти, CarExamples и Cars & More. Это структура URL:

  • example.com / AutoParts
  • example.com / carexamples
  • example.com / carsandmore

Один из клиентов (CarExamples) хочет использовать свой собственный домен (carexamples.com), но ему необходимо загрузить содержимое example.com/carexamples, конечно, всегда используя оригинальный домен.

Это означает, что:

  • carexamples.com должен загрузить example.com/carexamples
  • carexamples.com / about должен загрузить example.com/carexamples/about
  • carexamples.com / категории / грузовики? P = 1 должен загрузить example.com/carexamples/categories/trucks?p=1

Мы используем среду LAMP (PHP v5.6). Домен example.com находится на /www/example/html на нашем сервере.

Текущее состояние этой проблемы:

  1. Создайте запись A в консоли диспетчера DNS домена, которая указывает на тот же сервер, где размещается example.com.

  2. Добавление виртуального хоста для настраиваемого домена

    <VirtualHost servername:80>
        ServerName carexamples.com
        ServerAlias www.carexamples.com
        DocumentRoot /www/example/html
    </VirtualHost>
    

Но при открытии carexamples.com это просто загрузит тот же контент example.com

Стоит отметить, что /www/example/html/carexamples - это не каталог, это перезапись с /www/example/html/store.php?store=carexamples

Shopify делает нечто подобное: https://help.shopify.com/en/manual/domains/add-a-domain/using-existing-domains/connecting-domains#set-up-your-existing-domain-to-connect-to-shopify возможно, это может помочь в качестве ссылки на эту проблему.

Это существующие правила перезаписи в файле .htaccess:

# stores
RewriteRule ^([0-9a-zA-Z-]{2,50})$ /store.php?store=$1 [QSA,L]

# stores > categories
RewriteRule ^([0-9a-zA-Z-]{2,50})/([0-9a-zA-Z-]{1,50})$ /store.cat.php?store=$1&cat=$2 [QSA,L]

# stores > categories > items
RewriteRule ^([0-9a-zA-Z-]{2,50})/([0-9a-zA-Z-]{1,50})/([0-9]+)/([0-9a-zA-Z-]{1,100})$ /store.cat.php?store=$1&cat=$2&id_item=$3&item=$4 [QSA,L]

Ответы [ 2 ]

0 голосов
/ 13 ноября 2018

У вас есть такие правила в корне сайта .htaccess:

RewriteEngine On

# per domain rewrite
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteCond %{HTTP_HOST} !^(?:www\.)?example\. [NC]
RewriteCond %{HTTP_HOST}:%{REQUEST_URI} ^(?:www\.)?([^.]+)[^:]*:(?!/\1/) [NC]
RewriteRule ^ %1%{REQUEST_URI} [L]

# stores
RewriteRule ^([\w-]{2,50})/?$ store.php?store=$1 [QSA,L]

# stores > categories
RewriteRule ^([\w-]{2,50})/([\w-]{1,50})/?$ store.cat.php?store=$1&cat=$2 [QSA,L]

# stores > categories > items
RewriteRule ^([\w-]{2,50})/([\w-]{1,50})/(\d+)/([\w-]{1,100})/?$ store.cat.php?store=$1&cat=$2&id_item=$3&item=$4 [QSA,L]
0 голосов
/ 07 ноября 2018

Если я правильно понял ваш пост (поправьте меня или уточните, если это не то, что вы ищете)

Вам нужен отдельный vHost для каждой записи. Вы смотрите не в тот каталог - это пример - Хотя это само собой разумеется. Просто добавьте /carexamples к DocumentRoot

<VirtualHost servername:80>
    ServerName carexamples.com
    ServerAlias www.carexamples.com
    DocumentRoot /www/example/html/carexamples
</VirtualHost> 
...