我正在重写一个URL以摆脱令人讨厌的GET参数。
我的意图是将“index.php?do=show&id=1
”重写为“/show/1
”
但是,“重定向”/show/
保留在网址中。因此/index.php
会自动变为/show/index.php
。
我的配置有什么问题?
server {
listen 80;
server_name xxxxxx.de www.xxxxxx.de;
root /var/www/xxxxxx/;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ =404;
include /etc/nginx/mime.types;
if (!-e $request_filename){
rewrite ^/show/(.*)$ /index.php?do=show&id=$1 last; break;
}
}
error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
找到解决方案:将HREF从index.php更改为/index.php - 现在一切正常。