两个带有www重定向的RewriteRules

时间:2010-04-06 22:15:44

标签: .htaccess mod-rewrite

我有一个多语言网站,它使用根目录('/ en'表示英语,'/ es'表示西班牙语)的子目录用于每种特定语言。每个重定向都会将一个get变量附加到URL,并使用代理的“P”标志隐藏它。我目前的西班牙语子文件夹的htaccess文件是:

Options +FollowSymlinks
RewriteEngine on
RewriteOptions MaxRedirects=10
RewriteBase /
RewriteRule ^(.*)\.html$ $1.php
RewriteRule ^(.*)$ http://www.domain.com/$1?l=es [P,R=301,L]

问题是我还想在域名中附加'www'。代理重定向不显示“www”。是否有可能在最后一个附加www之前放置一个rewriterule,然后仍然处理最后一个?

1 个答案:

答案 0 :(得分:1)

是否真的有必要通过代理方法解决您的www.重写问题?如果缺少www.,我会建议定期301重定向。映射到同一个应用程序的许多URL只会导致会话/ cookie的使用(阅读no-www)。

Options +FollowSymlinks
RewriteEngine on
RewriteOptions MaxRedirects=10

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

RewriteBase /
RewriteRule ^(.*)\.html$ $1.php
RewriteRule ^(.*)$ http://www.domain.com/$1?l=es [P,R=301,L]