Использование субдоменов подстановочных знаков с перезаписью модов? - PullRequest
0 голосов
/ 23 октября 2008

У меня включены поддомены Wild Card, однако я просто не знаю mod_rewrite в той степени, которая требуется для написания этого. Может кто-нибудь сказать мне, как сделать так, чтобы что-нибудь кроме www и ничего не заходило на основной сайт, кроме любого субдомена, кроме этого, можно было бы /script/index.php?username=$username?

1 Ответ

1 голос
/ 23 октября 2008

Откуда берется переменная $ username ??

Предположим, что URL основного сайта http://www.example.com/main_site.php и что вы используете этот внешний контекст Справочника (т. Е. Не в .htaccess и не в директиве ). Если он находится в .htaccess, удалите ведущий / (например, сделайте его main_site.php).

Я считаю, что это не сработает сразу, потому что есть много непонятных переменных (откуда берется имя пользователя ?, что делать с остальной частью запроса, передавать его в качестве параметра? ), но надеюсь, вы получите представление:

#Turn on the rewrite engine
RewriteEngine On
#Check accessed domain, if it's either www.example.com or
RewriteCond %{HTTP_HOST} ^www.example.com$ [NC,OR]
#example.com
RewriteCond %{HTTP_HOST} ^example.com$ [NC]
#and the requested URL does not contain script you'll be accessing to avoid looping
RewriteCond %{REQUEST_URI} !main_site.php
#Then we tell that everything matching the above will go to main_site.php
RewriteRule ^ /main_site.php [L]
#If the request is not asking for main_site.php nor index.php
RewriteCond %{REQUEST_URI} !main_site.php
RewriteCond %{REQUEST_URI} !index.php
#We go to /script/index.php (username will be empty, becase we don't know 
#where to get it from)
RewriteRule ^ /script/index.php?username=$username [L]
...