.htaccess重定向[强制www除了index.php]

时间:2012-05-25 14:04:54

标签: apache .htaccess mod-rewrite redirect conditional-statements

我正在尝试根据这个条件进行htaccess重定向:

将没有“www”http://siteweb.com的所有网页重定向到http://www.siteweb.com/index.html http://siteweb.com/index.php

除外

必须将http://siteweb.com/index.php重定向到http://www.siteweb.com/index.php

实际上我使用这段代码[但错误之处:s]

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

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

提前致谢。

1 个答案:

答案 0 :(得分:0)

您可以在.htaccess中使用此代码:

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

这会将除index.php之外的所有URI重定向到www的域。但是你的问题很混乱,因为你也写了:

The http://siteweb.com/index.php must to be redirected To http://www.siteweb.com/index.php

这告诉我您可能希望将包含index.php的每个URI重定向到www的域。