Как настроить файл .htaccess для обработки ссылок с субдоменом и без?

Как настроить правила перенаправления, чтобы обеспечить функционирование ссылок с субдоменом и без, а также обеспечить работоспособность нескольких правил для разных страниц?
  • 24 декабря 2023 г. 17:47
Ответы на вопрос 2
Для обработки ссылок с субдоменом и без в файле .htaccess можно использовать следующие правила перенаправления:

1. Для обработки ссылок с субдоменом можно использовать следующее правило:
```htaccess
RewriteCond %{HTTP_HOST} ^subdomain\.example\.com$
RewriteRule ^(.*)$ https://www.example.com/subdomain/$1 [L]
```
Это правило перенаправляет все запросы, присланные на субдомен "subdomain.example.com", на страницы в папке "subdomain" на основном домене "www.example.com".

2. Для обработки ссылок без субдомена можно использовать данное правило:
```htaccess
RewriteCond %{HTTP_HOST} !^subdomain\.example\.com$ [NC]
RewriteRule ^(.*)$ https://www.example.com/$1 [L]
```
Это правило перенаправляет все запросы, не связанные с субдоменом "subdomain.example.com", на основной домен "www.example.com".

3. Чтобы обеспечить работоспособность нескольких правил для разных страниц, можно добавить дополнительные правила перенаправления в файл .htaccess.
```htaccess
RewriteCond %{HTTP_HOST} ^subdomain\.example\.com$
RewriteRule ^page1$ /subdomain/page1.php [L]

RewriteCond %{HTTP_HOST} ^subdomain\.example\.com$
RewriteRule ^page2$ /subdomain/page2.php [L]

RewriteCond %{HTTP_HOST} !^subdomain\.example\.com$ [NC]
RewriteRule ^page1$ /page1.php [L]

RewriteCond %{HTTP_HOST} !^subdomain\.example\.com$ [NC]
RewriteRule ^page2$ /page2.php [L]
```
В этом примере, если запрос приходит с субдомена "subdomain.example.com", он будет перенаправлен на страницы "subdomain/page1.php" или "subdomain/page2.php". Если запрос приходит без субдомена, он будет перенаправлен на страницы "page1.php" или "page2.php" на основном домене.

Обратите внимание, что для работы с .htaccess файлом требуется включенный модуль мод_rewrite в конфигурации сервера.
viktorross , 
Пытался так, тоже работает только для d.php, а s.php работать перестает по какой-то причине

Все варианты доменов (и путей) совпадают с первым по очерёдности универсальным правилом - оно и обрабатывается.
Это как записка от жены мужу-программисту: Если будет хлеб - купи хлеб, а если будет батон - купи батон. Ну муж-программист и купит только хлеб, потому что он первым совпал.
Похожие вопросы