Назад | Перейти на главную страницу

Правило перезаписи поддомена на apache (преобразовано из nginx)

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

server {
listen   80;
server_name  ~^(?<subdomain>.+)\.foo\.gg$;

location / {
if (!-e $request_filename) {
    rewrite  ^/([-a-zA-Z0-9]+)-$  /stats.php?code=$1&sub=$subdomain  last;
    rewrite  ^/([-a-zA-Z0-9]+)$  /redirect.php?code=$1&sub=$subdomain  last;
    break;
}
}
}

Я пробовал это (из другого потока serverfault, который у меня не работает:

RewriteCond %{HTTP_HOST} ^([^.]+)\.foo\.gg$

RewriteRule ^([A-Za-z0-9-]+)$ redirect.php?code=$1&sub=$2 [L]

Помогите?

Строку замены необходимо настроить, чтобы использовать захват из RewriteCond, и нужна ли вам ведущая косая черта, зависит от того, где это RewriteRule настроен - это означает, что он должен быть в <Directory> блок для корня документа или .htaccess файл там.

RewriteRule ^([A-Za-z0-9-]+)$ redirect.php?code=$1&sub=%1 [L]

Если это в твоем <VirtualHost> затем оставьте ведущую косую черту.

RewriteRule ^/([A-Za-z0-9-]+)$ redirect.php?code=$1&sub=%1 [L]