Как мне перенаправить все субдомены в index.php с помощью htaccess без перенаправления 301

1

Я хотел бы настроить файл htaccess, который направляет запросы для любого поддомена в файл index.php в папке /public_html/. Я уже настроил DNS для принятия поддоменов подстановочных знаков.

Я планирую предоставить пользователям персонализированный URL-адрес сайта и передать имя пользователя через субдомен, поэтому важно, чтобы URL-адрес оставался, и, следовательно, 301 переадресация не может быть и речи.

В настоящее время мой htaccess выглядит так, но не работает (сервер не найден):

RewriteEngine On
RewriteCond %{HTTP_HOST} ^(.+)\.mydomain\.com$ [NC]
RewriteRule . /index.php?subdomain=%1 [L,QSA]

Моя конечная цель - получить URL-адрес, например //joebloggs.mydomain.com/foo/bar чтобы перевести что-то вроде //www.mydomain.com/index.php?user=joebloggs&route=/foo/bar.

Что мне нужно сделать в файле htaccess, чтобы сделать эту работу?

  • 0
    У вас есть доступ к файлу vhost?
  • 0
    Извините нет у меня нет доступа
Теги:
.htaccess
mod-rewrite

2 ответа

1
Лучший ответ

Это можно сделать так

# if request is for a subdomain (except "www")
RewriteCond %{HTTP_HOST} ^((?!www\.).+)\.mydomain\.com$ [NC]
# internally rewrite to index.php
RewriteRule ^((?!index\.php$).*)$ /index.php?subdomain=%1&route=$1 [L]
0

Поскольку, похоже, правило выполняется, когда вы пытаетесь перейти к index.php, не может ли это быть сделано с простой php-логикой в index.php?

Я мог бы неправильно понять вашу цель, но, похоже, вы могли бы легко заменить ее GET. Ваш url был бы готов и для этого подхода.

  • 0
    Идея состоит в том, что кто-то может перейти на //username.mydomain.com/whatever/whatever и это в конечном итоге будет переводиться на //www.mydomain.com/index.php?user=username&route=/whatever/whatever - делает это больше смысл?
  • 0
    В этом случае я считаю, что ваш вопрос может быть дубликатом этого вопроса; stackoverflow.com/questions/18303858/...

Ещё вопросы

Сообщество Overcoder
Наверх
Меню