Мой друг перемещает хосты, и мне было поручено разобраться с его правилами перезаписи. Я сделал большинство из них, за исключением этого неудобного правила перезаписи поддоменов:
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]