Переписать все виртуальные субдомены в одну папку с помощью htaccess - PullRequest
2 голосов
/ 14 апреля 2011

Я искал в интернете, пытаясь найти решение этой проблемы, но не могу найти определенного решения.

Я пытаюсь перенаправить переписать

anything.domain.com / anypage.php? Югу = ничего и в том числе = get_parameters

до

domain.com / пользователей / anypage.php? Югу = ничего и в том числе = get_parameters


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

Любая помощь будет высоко ценится. Спасибо.

P.S Wildcard DNS включены, и все правильно настроено в apache.

Редактировать:

В итоге я использовал фолловинг, похоже, он работает довольно хорошо. Спасибо.

RewriteCond %{HTTP_HOST}
^(.*).domain.com RewriteCond
%{HTTP_HOST} !^www.domain.com [NC]
RewriteRule ^(.*)$
http://domain.com/users/$1?sub=%1 [P]

1 Ответ

4 голосов
/ 14 апреля 2011

Попробуйте это правило в своем файле .htaccess:

Options +FollowSymLinks
RewriteEngine on

# redirect for http
RewriteCond %{HTTP_HOST} !^www\.domain\.com$ [NC]
RewriteCond %{HTTP_HOST} ^([^.]+)\.domain\.com$ [NC]
RewriteCond %{SERVER_PORT} =80
RewriteRule ^(.*)$ http://domain.com/users/$1?sub=%1 [R=301,QSA,L,NE]

# redirect for https
RewriteCond %{HTTP_HOST} !^www\.domain\.com$ [NC]
RewriteCond %{HTTP_HOST} ^([^.]+)\.domain\.com$ [NC]
RewriteCond %{SERVER_PORT} =443
RewriteRule ^(.*)$ https://domain.com/users/$1?sub=%1 [R=301,QSA,L,NE]

R=301 will redirect with https status 301
L will make last rule
NE is for no escaping query string
QSA will append your existing query parameters

$1 is your REQUEST_URI
...