第一个目录的简单RewriteRule

时间:2012-10-15 10:36:39

标签: apache .htaccess mod-rewrite

这是非常基本的,但我找不到有效的解决方案。我只需要将旧目录中的任何URL重定向到新URL。

示例:

/search/whatever

/jobs/search

我不需要映射任何内容,我希望所有流量都开始/搜索以重定向(301)。

使用此:

RewriteRule /search /jobs [R=301,L]

正常但我在/ jobs中有一个URL现在也被重定向:

/jobs/search

这是错误的 - 它需要匹配URL的开头。所以我尝试了这个:

RewriteRule ^/search /jobs [R=301,L]

但这根本不会重定向,所以我被卡住了。

另一个例子是:

RewriteRule / careers-at-pure / emea / contact-us / careers-at-pure [R = 301,L]

这会在旧网址和新网址中创建一个循环,但是以下内容无法匹配和重定向:

RewriteRule ^ / careers-at-pure / emea / contact-us / careers-at-pure [R = 301,L]

有什么建议吗?

由于

1 个答案:

答案 0 :(得分:0)

当在htaccess文件中通过重写规则时,会从URI中删除前导斜杠。您需要从正则表达式中删除前导斜杠,或至少使其成为可选:

RewriteRule ^/?search /jobs [R=301,L]