在IIS上使用301从非www重定向到www

时间:2016-06-14 08:05:47

标签: .htaccess redirect iis http-status-code-301 http-status-code-302

我在1&1的Windows服务器上托管了我的网站。 在那里,不可能在web.config上添加元素<rewrite><rules> ...所以我使用的是.htaccess文件... 我不是那么专家,我预计它只会在Apache服务器上运行。我错了!我的.hataccess也适用于IIS。

这里是代码:

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

//Prevent viewing of .htaccess file
<Files .htaccess>
order allow,deny
deny from all
</Files>

使用302完成重定向的问题。我想要301重定向。我正在使用提琴手,这就是结果:

enter image description here

我遇到问题的网站是www.renovahaus.it 我怎样才能解决我的问题?

感谢名单

1 个答案:

答案 0 :(得分:0)

这通常使用URLRewrite模块完成,在1&amp; 1的情况下,这在web.config中被禁用,但是当您使用.htaccess文件时,.htaccess的内容仍然会被转换为基础web.config 。

您可以阅读有关转化过程here

的精彩教程

但总结是你可能正在寻找代码块: -

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

哪个应该透明地将以下内容添加到web.config文件中(即使你不能直接编辑它)

<rewrite>
  <rules>
    <rule name="Imported Rule 1" stopProcessing="true">
      <match url="^(.*)$" ignoreCase="false" />
      <conditions>
        <add input="{HTTP_HOST}" pattern="^example\.com$" />
      </conditions>
      <action type="Redirect" redirectType="Permanent" url="http://www.example.com/{R:1}" />
    </rule>
    <rule name="Imported Rule 2" stopProcessing="true">
      <match url="^(.*)$" ignoreCase="false" />
      <conditions>
        <add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true" />
        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true" />
        <add input="{URL}" pattern="^/favicon.ico$" ignoreCase="false" negate="true" />
      </conditions>
      <action type="Rewrite" url="index.php?q={R:1}" appendQueryString="true" />
    </rule>
  </rules>
</rewrite>