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