shootingrubber 0 Newbie Poster

I have been trying to get this to work on my client's server for a website I am developing, but I simply cannot get it to work. Basically I am trying to remove the .html extensions, and add a trailing slash (in the URL bar).

So if someone enters:

  • example.com/home/ ----------- goes to ----- example.com/home/
  • example.com/home ------------ goes to ----- example.com/home/
  • example.com/home.html ------- goes to ----- example.com/home/
  • example.com/home.html/ ------ goes to ----- example.com/home/
  • example.com/home/.html ------ goes to ----- example.com/home/
  • example.com/home/.html/ ----- goes to ----- example.com/home/

Here is my .htaccess so far, which works PERFECTLY, and does everything I want it do, except add the trailing slash at the end.

Here is that code:

#force www
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]


# remove .html ONLY if requested directly
RewriteCond %{THE_REQUEST} (\.html\sHTTP/1)
RewriteRule ^(.+)\.html$ /$1 [R=301,L,QSA]


# remove trailing slash ONLY if it is not an existing folder
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /$1 [L,R=301]


# rewrite to FILENAME.html if such file does exist and is not a folder
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.html -f
RewriteRule ^(.*)$ /$1.html [L,QSA]

All of my files hosted on the server are in the form of FILENAME.html, and are located in the root directory.

So, if any one could please help me out, I would really appreciate it.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.