如何在“.htaccess”中创建用于重定向URL的规则?

时间:2017-11-05 05:21:21

标签: apache .htaccess redirect

我希望重定向发生

example.com --> www.example.com/abc
www.example.com --> www.example.com/abc
example.com/abc --> www.example.com/abc
example.com/anyRubbish --> www.example.com/abc

但是我对RedirectCond和ReWriteRule和RewriteBase之间的区别感到困惑,'L'和[L,R 301]中的R等等。

我正在为Apache Server编写规则。

1 个答案:

答案 0 :(得分:1)

您可以使用以下规则:

 RewriteEngine on
 RewriteCond ℅{HTTP_HOST} !^www\. [NC,OR]
 RewriteCond ℅{REQUEST_URI} !^/ABC
 RewriteRule ^ http://www.example.com/abc℅{REQUEST_URI} [L,R]

这是一个简短的解释:

第一个条件rewrite cond ℅{HTTP_HOST} !^www\. [OR]检查http主机头字符串是否不以www开头。如果主机主机值为 example.com ,则该条件返回true。 第二个条件RewriteCond ℅{REQUEST_URI} !^/ABC测试Uri。检查Uri是否不是 / ABC 。 。如果网址为 example.com/foobar ,则返回true;如果网址为 example.com/ABC ,则返回false OR标志告诉mod-rewrite执行其中一个条件,如果满足上述脚本中的一个条件,则应用规则。

根据条件应用RewriteRule RewriteRule ^ http://www.example.com/abc℅{REQUEST_URI} [L,R],这会将所有请求重写为 www.example.com/ABC