Перехватывать urlы вида /en/blaster/master/twister/ и делать rewrite на
index.php, при этом пропускать запросы к css,картинкам и запросы на php и
прямо корень сайта пропусать на fastcgi ?
Я сделал следующий конфиг:
location = / {
.... на fastcgi ....
}
location ~* ^.+(\.htaccess|\.htpasswd|htpasswd|htaccess|\.inc)$ {
return 403;
}
location ~* ^(?!.+\.(css|gif|jpg|txt|html|htm|png|jpeg|ico))$ {
rewrite ^.+$ /index.php break;
}
location ~* ^.+\.(php)$ {
.... на fastcgi ....
}
location ~* ^.+\.(jpg|jpeg|gif|png|css|ico|html|txt)$ {
root ... статика ...
}
в итоге на все запросы - /en/blaster/master/ или /booster/ - 404 ошибка и
все, не помогает даже добавление location еще одного
location ~* ^(/.+/)$ {
rewrite ....
}
Как я понимаю, в rewrite я не могу прописать pcre, чтобы rewrite срабатывал
"для всего, кроме ...), т..е. ^(?:.+(?!\.css|.htm....))$
Как сделать такое, может я просто чего-то не допонял ?
В общем, я бы не парился с отрицательным регулярным выражением,
а сделал бы так:
location = / {
.... на fastcgi ....
}
location = /index.php { # не обязательно, только для ускорения процесса
.... на fastcgi ....
}
location ~* \.(php)$ {
.... на fastcgi ....
}
location ~* \.(jpg|jpeg|gif|png|css|ico|html|txt)$ {
root ... статика ...
}
location ~* (\.htaccess|\.htpasswd|htpasswd|htaccess|\.inc)$ {
return 403;
}
location / {
rewrite ^.+$ /index.php;
}
Игорь Сысоев
http://sysoev.ru