Feyyaz
Feyyaz

Reputation: 571

Multiple rewrite rules and conditions in htaccess file

In my .htaccess file i have already some rewrite conditions and rules, and its working normal.

Now i need to add "http to https redirect" to my htaccess file.

Here is my old .htaccess file:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.php -f 
RewriteRule ^(.*)$ $1.php [L]

RewriteRule ^([a-z0-9_-]+)$   pages/$1.php [L]
RewriteRule ^([a-z0-9_-]+)/([-a-zA-Z0-9_]+)$   pages/$1/$2.php [L]
RewriteRule ^([a-z0-9_-]+)/([-a-zA-Z0-9_]+)/([-a-zA-Z0-9_]+)$   pages/$1/$2/$3.php [L]

I attempted to add below code to file but it doesnt work properly. For example if i write the url direct to browser its work (only with www). But if click my any backlinks or google search result links it doesnt work.

RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}/$1 [NC,R=301,L]

Where do i wrong? Where should i put the code? Any help would be great. Thanks.

Upvotes: 4

Views: 11247

Answers (2)

Amit Verma
Amit Verma

Reputation: 41219

You can use the following htaccess :

RewriteEngine on
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}/$1 [NC,R=301,L]
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.php -f 
RewriteRule ^(.+)/?$ $1.php [L]

Clear your browser's cache before testing this

Upvotes: 0

Alain Vanderbroeck
Alain Vanderbroeck

Reputation: 335

your htaccess could look like this:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.yoursite\.com [NC]
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L]

RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.php -f 
RewriteRule ^(.*)$ $1.php [L]

RewriteRule ^([a-z0-9_-]+)$ pages/$1.php [L]
RewriteRule ^([a-z0-9_-]+)/([-a-zA-Z0-9_]+)$   pages/$1/$2.php [L]
RewriteRule ^([a-z0-9_-]+)/([-a-zA-Z0-9_]+)/([-a-zA-Z0-9_]+)$   pages/$1/$2/$3.php [L]

At least, it works for me, in my own implementation

Upvotes: 2

Related Questions