NginX Magento rewrite to remove trailing slash
We are trying to remove the trailing slash from our URLs (primarily so that duplicate content is not being served).
I know there are many tutorials about how to do this, and I have succeeded in changing the core code so all links are to non-slash URLs. However I am struggling to do the rewrites for anyone who follows a link (or enters one manually) with the trailing slash.
All the tutorials I have read say to change the htaccess file, which after much digging I found out is not being used on our server. So I’m trying to use a rewrite in the DOMAIN.conf file (which is pulled in to the nginx.conf file).
I proposed this to our server hosts;
Code:
rewrite ^/(.*)/$ /$1 permanent;
But they said: “That appears to be correct, however we do not support this.” and gave me a link to an online htaccess tester.
Currently our .conf file contains this;
Quote:
server {
listen <server IP>:80;
server_name
www.DOMAIN.co.uk;
root <server root>;
location / {
index index.html index.php;
try_files $uri $uri/ @handler;
expires 30d;
#auth_basic “Restricted”;
#auth_basic_user_file /var/www/htpasswd;
}
location /app/ { deny all; }
location /includes/ { deny all; }
location /lib/ { deny all; }
location /media/downloadable/ { deny all; }
location /pkginfo/ { deny all; }
location /report/config.xml { deny all; }
location /var/ { deny all; }
location /. {
return 404;
}
location @handler {
rewrite / /index.php;
}
location ~ .php/ {
rewrite ^(.*.php)/ $1 last;
}
location ~ .php$ {
if (!-e $request_filename) { rewrite / /index.php last; }
expires off;
fastcgi_pass <password>;
fastcgi_param HTTPS $fastcgi_https;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
# fastcgi_param MAGE_RUN_CODE default;
# fastcgi_param MAGE_RUN_TYPE store;
include fastcgi_params;
}
##
# SEO REWRITES
##
...............
(edited to remove certain things and shortened to relevant info).
Can anyone help with what the rewrite would need to be?