Есть работающий достаточно большой сайт (много разных настроек в nginx).
Есть задача:
1) Сделать, чтобы при заходе на site.com/forum/* происходил редирект на forum.site.com/forum/*
2) Сделать, чтобы при заходе на forum.site.com/* (где * - что угодно, кроме /forum/*) происходил редирект на site.com/*
Сайт на php, часть настроек (которые на данный момент обрабатывают запросы /forum/*):
server
{
server_name site site.com;
location /
{
if ( !-f $request_filename) {
rewrite .* /index.php last;
}
root /sitedir/htdocs;
index index.php;
}
location ~ \.php$
{
gzip on;
if ( !-f $request_filename) {
rewrite .* /index.php last;
}
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_connect_timeout 5;
fastcgi_buffer_size 32k;
fastcgi_buffers 8 16k;
fastcgi_param DOCUMENT_ROOT /sitedir/htdocs;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_script_name;
include fastcgi_params;
open_file_cache off;
}
Попробовал изменить server_name на
~^(?<forum>forum\.)site\.com$
и добавить location:
location ^~ /forum
{
if ($forum != "forum.") {
rewrite ^(.*) http://forum.site.com$1 permanent;
}
rewrite .* /index.php last;
}
Но это не решило проблему:
Можно зайти на forum.site.com/something/