Search code examples
apache.htaccessmod-rewriteno-www

htaccess with www RewriteRule


I did cross-reference addresses without WWW to a WWW Now I have a problem, if I delete in the address bar WWW, I get an error

this is a .htaccess:

 RewriteRule ^([^/\.]+)/([^/\.]+)/?$ ?page_id=$2
 RewriteRule ^([^/\.]+)/([^/\.]+)/([^/\.]+)/?$ ?one_art=$3

 RewriteCond %{HTTP_HOST} ^pests.co.il
 RewriteRule (.*) http://www.pests.co.il/$1 [R=301,L]

Solution

  • Rearrange your rules and keep 301 redirect rules before internal rewrites:

     RewriteEngine On
    
     RewriteCond %{HTTP_HOST} ^pests\.co\.il$ [NC]
     RewriteRule (.*) http://www.pests.co.il/$1 [R=301,L]
    
     RewriteRule ^([^/.]+)/([^/.]+)/?$ ?page_id=$2 [L,QSA]
     RewriteRule ^([^/.]+)/([^/.]+)/([^/.]+)/?$ ?one_art=$3 [L,QSA]