O dólar está fora das cotações na primeira expressão regular da sua reescrita.
Estou frustrado há dias tentando descobrir isso, então qualquer conselho / ajuda seria muito apreciado!
Recentemente, adicionei uma seção chamada /links
a um site em somehost.com , mas parece que não consigo obter as regras de regravação para esse diretório (veja abaixo). Todos os outros caminhos do domínio estão funcionando bem (por exemplo, somehost.com/browse/video/whatever redireciona para somehost.com/by/whatever / bem) e todos outras regras de reescrita parecem ainda estar funcionando muito bem, é apenas a seção location /links/
recém-adicionada ao meu conf onde as coisas desmoronam.
O seguinte conf falha na linha 27 - O erro que recebo ao usar service nginx restart
é: diretiva "reescrever" não é terminada por ";" mas eu posso ver que a linha final termina com um ; então eu não tenho certeza do que está errado. Talvez algo com o regex?
Meu conf nginx está abaixo. Alguma idéia sobre o que alterar para obter URLs como somehost.com/links/page/3 ou somehost.com/links/tag/sometopic/page/2 funcionando?
Obrigado!
server {
server_name somehost.com;
listen 80;
root /var/www/somehost.com;
include /etc/nginx/php.conf;
location / {
index index.php;
access_log /var/log/nginx/somehost.com.log;
#handle old variable redirects first, before dealing with current permalinks
rewrite ^/?browse/video/(.*) /by/$1 permanent;
#set a 30-day expires header on static files for cache
if (-f $request_filename) { expires 30d; break; }
#do current permalinks with args
try_files $uri $uri/ /index.php?$args;
}
#handle static redirects from old URLs and rewrite
location /browse/title { rewrite ^(.*)$ /browse/?orderby=title redirect; }
location /browse/featured { rewrite ^(.*)$ /by/featured/ permanent; }
#handle /links permalinks etc
location /links/ {
rewrite "tag/(.+)/page/([0-9]{1,})/s/([^/]+)(/)?"$ /?tag=$1&page=$2&s=$3 break;
rewrite "tag/(.+)/page/([0-9]{1,})(/)?" /?tag=$1&page=$2 break;
rewrite tag/(.+)/s/([^/]+)(/)? /?tag=$1&s=$2 break;
rewrite tag/([^/]+)(/)? /?tag=$1 break;
rewrite rss/([^/]+) /rss.php?tag=$1 break;
rewrite rss /rss.php break;
rewrite "page/([0-9]{1,})/s/([^/]+)" /index.php?page=$1&s=$2 break;
rewrite "page/([0-9]{1,})" /index.php?page=$1 break;
rewrite go/([0-9]+) /ir.php?id=$1 break;
}
}
O dólar está fora das cotações na primeira expressão regular da sua reescrita.