简单的mod_rewrite不工作/删除“www。”?

时间:2013-03-27 14:30:48

标签: apache .htaccess mod-rewrite

我想在我的网站上运行一个非常简单的mod_rewrite规则。

到目前为止,我的.htaccess文件看起来像这样:

<IfModule mod_rewrite.c>
  Options +FollowSymlinks
  RewriteEngine On
  RewriteRule ^http://mywebpage.com/study$ http://mywebpage.com/jobs.html [L]
</IfModule>

我想在http://mywebpage.com/jobs.html处提供http://mywebpage.com/study。我已经确定.htaccess文件没有被忽略 - 一切都没问题,如果我在文件中输入垃圾,网页就会崩溃。那为什么这不起作用?


另外,我打算使用HTML5 Boilerplate中的以下代码段:

# Rewrite "www.example.com -> example.com".

<IfModule mod_rewrite.c>
  RewriteCond %{HTTPS} !=on
  RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
  RewriteRule ^ http://%1%{REQUEST_URI} [R=301,L]
</IfModule>

所以我想在我的学习重写规则之前有那个片段是明智的吗?通过将上述代码段与我的自定义重写规则一起使用,我可以获得任何问题吗?

1 个答案:

答案 0 :(得分:2)

您不能在RewriteRule正则表达式中输入完整的网址,请尝试以下代码:

<IfModule mod_rewrite.c>
  Options +FollowSymlinks
  RewriteEngine On
  RewriteBase /

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

  RewriteRule ^study$ jobs.html [L]
</IfModule>