Я заменяю lighttpd на nginx на моем сервере разработки.Я работал с PHP и SSL, но я озадачен тем, что должно быть простым переписыванием.Мне нужно переписать URL-адреса с
http[s]://dev.foo.com/signup/123456
на
http[s]://dev.foo.com/signup/index.php?attcode=123456
Правило, которое я использую:
rewrite ^/signup/([0-9]+)$ /signup/index.php?attycode=$1 last;
Я пробовал многочисленные варианты этого, переехалэто вокруг, поместите это в блоке местоположения.Что происходит, если URL перезаписывается на:
http://dev.foo.com/dev.foo.com/signup/123456
Имя хоста вставлено, и кажется, что он всегда теряет https и переходит на http.
Мой раздел сервера nginx.com находится ниже.Я прочитал и перечитал документы nginx (как они есть) и искал список рассылки nginx, но ничего из того, что я пробовал, не решило эту проблему.
Ubuntu 8.0.4 LTS в случае, если это важно.
Спасибо.
server {
listen 80;
listen 443 default ssl;
server_name dev.foo.com dev.bar.com localhost;
root /var/www/foo;
index index.php index.html;
# ssl cert stuff omitted
charset utf-8;
access_log /var/log/www/dev.access.log main;
location ~ /\. {
deny all;
}
location ~* ^.+\.(inc|tpl|sql|ini|bak|sh|cgi)$ {
deny all;
}
location ~* ^/(scripts|tmp|sql)/ {
deny all;
}
rewrite ^/robots.txt$ /robots_nocrawl.txt break;
rewrite ^/signup/([0-9]+)$ /signup/index.php?attycode=$1 last;
location / {
try_files $uri $uri/ /error_404.php;
}
location ~ \.php$ {
fastcgi_pass localhost:51115;
fastcgi_index index.php;
fastcgi_intercept_errors on;
include fastcgi_params;
fastcgi_param SERVER_NAME $http_host;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
error_page 404 /error_404.php;
}