How to fix bug with Wordpress domain extra
trailing slash (Double wordpress trailing slash)
2 of the wordpress installations, I take care for had been reported
an annoying bug today by some colleagues.
The bug consisted in double trailing slash at the end of the domain
url e.g.;
http://our-company-domainname.com//
As a result in the urls everywhere there was the double trailing
slash appearing i.e.::
http://our-company-domainname.com//countact-us/
http://our-company-domainname.com//languages/
etc.
The bug was reported to happen in the
multiolingual version of
the wordpress based sites, as the
Qtranslate plugin is used on this installations to achieve multiple
languages it seemed at first logical that the
double slash
domain and url wordpress issues are caused for some reason by
qTranslate.
Therefore, I initially looked for the cause of the problem, within
the wordpress admin settings for qTranslate plugin. After not
finding any clue pointing the bug to be related to
qTranslate, I've then checked the settings for each
individual wordpress
Page and
Post (There in posts
usually one can manually set the exact url pointing to each post
and page).
The
double slash appeared also in each Post and Page and it
wasn't possible to edit the complete URL address to remove the
double trailin slashes. My next assumption was the cause for the
double slash appearing on each site link is because of
something wrong with the sites
.htaccess, therefore I
checked in the wp main sites directory
.htaccess
Strangely
.htacces seemed OKAY and there was any rule that
somehow might lead to
double slashes in URL. WP-sites
.htaccess looked like so:
server:/home/wp-site1/www# cat .htaccess
RewriteEngine On
RewriteBase /
# Rewrite rules for new content and scripts folder
RewriteRule ^jscripts/(.*)$ wp-includes/js/$1
RewriteRule ^gallery/(.*)$ wp-content/uploads/$1
RewriteRule ^modules/(.*)$ wp-content/plugins/$1
RewriteRule ^gui/(.*)/(.*)$ wp-content/themes/$1/$2 [L]
# Disable direct acceees to wp files if referer is not valid
#RewriteCond %{THE_REQUEST} .wp-*
#RewriteCond %{REQUEST_URI} .wp-*
#RewriteCond %{REQUEST_URI} !.*media-upload.php.*
#RewriteCond %{HTTP_REFERER} !.*cadia.*
#RewriteRule . /error404 [L]
# Standard Wordpress rewrite
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
Onwards, I thought a possible way to fix bug by adding
mod_rewrite rules in .htaccess which would do a
redirect all requests to
http://www.our-company-domainname.com//contact-us/ to
http://www.our-company-domainname.com//contact-us/ etc. like
so:
RewriteRule ^/(.*)$ /$1
This for unknown reasons to me didn't worked either, finally thanks
God I remembered to check the variables in wp-config.php
(some month ago or so
I added there some variables in order to improve the wordpress
websites opening times).
I've figured out I did a mistake in one of the variables by adding
an ending slash to the URL. The variable added was:
define('WP_HOME','http://our-company-domainname.com/');
whether instead it should be without the ending trailing slash like
so:
define('WP_HOME','http://our-company-domainname.com');
By removing the ending trailing slash:
define('WP_HOME','http://our-company-domainname.com/');
to:
define('WP_HOME','http://our-company-domainname.com');
fixed the issue.
Cheers ;)