.htaccess规则无法正常工作(非www到www重定向)

时间:2016-09-06 06:20:10

标签: .htaccess

以下是我的网址格式:www.domainname.com/in/laptop.html

在.htaccess中,我已拨打search.php?country=in&source=seo_url&keyword=laptop.html

使用的规则:

 RewriteCond %{REQUEST_FILENAME} !-f
 RewriteCond %{REQUEST_FILENAME} !-d
 RewriteCond %{REQUEST_FILENAME} !-l
 RewriteRule ^([\w]+)/([\w-]+).html$ search.php?country=$1&source=seo_url&keyword=$2.html

如果有人打电话,现在问题 domainname.com/in/laptop.html(没有www),它不显示任何产品

然后我使用以下规则将非www重定向到www URL

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

发生了什么: 当我致电domainname.com/in/laptop.html时,它会重定向到以下网址

http://www.domainname.com/search.php/laptops.html?country=in&source=seo_url&keyword=laptops.html

它应该做什么: 如果致电domainname.com/in/laptop.html,则应重定向至www.domainname.com/in/laptop.html

1 个答案:

答案 0 :(得分:1)

重写前重定向到www:

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

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^([\w]+)/([\w-]+).html$ search.php?country=$1&source=seo_url&keyword=$2.html