Hello,
I’m trying to configure apache modrewrite so that it would redirect non-www redirects to www subdomain (if there’s no file request)
<IfModule mod_rewrite.c>
RewriteEngine On
# uncomment the following line, if you are having trouble
# getting no_script_name to work
RewriteBase /
###### BEGIN special handling for the media module's cached scaled images
# If it exists, just deliver it
RewriteCond %{REQUEST_URI} ^/uploads/media_items/.+$
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule .* - [L]
# If it doesn't exist, render it via the front end controller
RewriteCond %{REQUEST_URI} ^/uploads/media_items/.+$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php [QSA,L]
###### END special handling for the media module's cached scaled images
# we skip all files with .something
RewriteCond %{REQUEST_URI} \\..+$
RewriteCond %{REQUEST_URI} !\\.html$
RewriteRule .* - [L]
# we check if the .html version is here (caching)
RewriteRule ^$ index.html [QSA]
RewriteRule ^([^.]+)$ $1.html [QSA]
RewriteCond %{REQUEST_FILENAME} !-f
[COLOR="Red"] # redirect to www
# non empty HTTP_HOST in the request
RewriteCond %{HTTP_HOST} !^$ [NC]
# does not start with 'www'
RewriteCond %{HTTP_HOST} !^www\\. [NC]
# saves the value of HTTP_HOST in %1
RewriteCond %{HTTP_HOST} ^(.*)$ [NC]
# redirects using the saved URI (in RewriteRule) and saved hostname (in the last RewriteCond)
RewriteRule ^(.*)$ "http://www.%1/$1" [L,R=301][/COLOR]
# no, so we redirect to our front web controller
RewriteRule ^(.*)$ index.php [QSA,L]
</IfModule>
The problem is that non-www request will get .html extension at the end of the url. How can I fix that // why is that happening?
I added the red colored part, the rest of the .htaccess was defined before.
Thanks for help