【问题标题】:.htaccess rewrite - http:// to http://www.htaccess 重写 - http:// 到 http://www
【发布时间】:2011-12-12 15:50:35
【问题描述】:

我是 .htaccess 重定向的新手。

我正在使用下面的代码

Options +FollowSymlinks
RewriteEngine on
rewritecond %{http_host} ^example.com [nc]
rewriterule ^(.*)$ http://www.example.com/$1 [r=301,nc]

但是当我点击 URL http://example.com/folder/file.php 时,我被重定向到 http://www.example.com/file.php,这是错误的。

有人可以帮我解决这个问题

非常感谢帮助

谢谢

【问题讨论】:

  • 我的 .htaccess 中有类似的代码,但在您的代码中看不到任何错误。有一些细微差别,例如第一行中的%{HTTP_HOST} ^example\.com$ [NC] 和最后一行中的[R,L,QSA]。该 .htaccess 中是否还有其他一些重写规则?
  • 请先告诉我们你想从这个重写规则中得到什么?纯文本中的几个例子会很好。
  • @anubhava 基本上当用户输入http://example.com/folder/file.php 时,我希望他被重定向到http://www.example.com/folder/file.php

标签: .htaccess url-rewriting


【解决方案1】:

好的,你可以在你的 .htaccess 或 apache conf 文件中试试这个:

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

【讨论】:

    【解决方案2】:

    有一些拼写错误和一些未转义的字符,但最重要的是,您在 *rewritecond %{http_host} ^example.com [nc]* 行中缺少必需的“$”字符。

    这是你的代码“应该是”:

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

    不过,我个人使用并建议这样做:

    Options +FollowSymlinks
    RewriteEngine on
    RewriteCond %{HTTP_HOST} ^!www\.example\.com$ [NC]
    RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,NC]
    

    这应该会让你继续前进...... ;)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-01-10
      • 1970-01-01
      • 2016-01-20
      • 2019-11-01
      • 2013-07-01
      • 2014-12-16
      • 2015-02-16
      • 2018-11-12
      相关资源
      最近更新 更多