i've to give some information about my website Environment
i have static webpage in the root.
Wordpress installed in sub-dictionary www.domain.com/blog/
I have two .htaccess , one in the root and one in the wordpress folder.
i want to
- www to non on all URLs < below code DID it :)
- Remove index.html from url < below code DID it :)
- Remove all .html extension / Re-direct 301 to url without .html extension < below code DID it :)
- Add trailing slash to the static webpages / Re-direct 301 from non-trailing slash << I NEED HELP WITH THAT
- Force trailing slash to the Wordpress Webpages / Re-direct 301 from non-trailing slash < below code DID it :)
Some examples
domain.tld/index.html >> domain.tld/
domain.tld/file.html >> domain.tld/file/
domain.tld/file.html/ >> domain.tld/file/
domain.tld/wordpress/post-name >> domain.tld/wordpress/post-name/
My code in ROOT htaccess is
<IfModule mod_rewrite.c> Options +FollowSymLinks -MultiViews RewriteEngine On RewriteBase / #removing trailing slash RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)/$ $1 [R=301,L] #www to non RewriteCond %{HTTP_HOST} ^www\.(([a-z0-9_]+\.)?domain\.com)$ [NC] RewriteRule .? http://%1%{REQUEST_URI} [R=301,L] #html RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^([^\.]+)$ $1.html [NC,L] #index redirect RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.html\ HTTP/ RewriteRule ^index\.html$ http://domain.com/ [R=301,L] RewriteCond %{THE_REQUEST} \.html RewriteRule ^(.*)\.html$ /$1 [R=301,L] </IfModule> <IfModule mod_rewrite.c> RewriteEngine on RewriteBase /blog/ # Force Trailing Slash for wordpress RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)[^/]{1}$ %{REQUEST_URI}/ [L,R=301] </IfModule> The above code do
- redirect www to non-www
- Remove trailing slash at the end (if exists)
- Remove index.html
- Remove all .html
- Redirect 301 to filename without trailing slash at the end
- Force Trailing Slash for wordpress and redirect 301 from non trailing slash at the end
EDIT
#removing trailing slash Rule usage 