在htaccess中使用特定的301重定向问题

时间:2013-01-07 14:16:35

标签: apache .htaccess mod-rewrite

我遇到了网址格式的问题。

我需要发送 / EN 到/

问题是我只需要/ en(确切地说),而不是/ en / foo ...

我知道如何使用以.html结尾的字符串来完成它,但是在这里我有其他具有/ en / stuff的URL并且它们也匹配。

非常感谢帮助...

2 个答案:

答案 0 :(得分:1)

您需要在RewriteCond中指定字符串结尾,例如

RewriteEngine on

RewriteCond %{REQUEST_URI} ^/en$
RewriteRule ^(.*)$  / [L,R=301]

请注意,条件模式以及重写规则模式是perl兼容的正则表达式(添加了一些内容):

对于主播:

  • ^ - 线下锚点
  • $ - 行尾锚点

修改

BTW,http://htaccess.madewithlove.be/上有非常好的 htaccess测试人员,您可以用它来测试规则。

答案 1 :(得分:0)

通过httpd.conf启用mod_rewrite和.htaccess,然后将此代码放在.htaccess目录下的DOCUMENT_ROOT中:

Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /

RewriteRule ^en/?$ / [L,R=301,NC]

这会将/en/en/重定向到/,同时请注意,由于此处使用的NC(忽略大小写)标记,也会处理/EN