.htaccess RedirectMatch获得404 for example.com/choice/

时间:2016-02-02 17:14:00

标签: apache .htaccess redirect mod-rewrite

我正在尝试进行.htaccess重定向,除了我的一个案例外,我让它正常工作。

当我有这条规则时:

RedirectMatch "^/choice$" "/choice/home.html"

地址:www.example.com/choice重定向到www.example.com/choice/home.html

相反,当我有这个规则时:

RedirectMatch "^/choice/$" "/choice/home.html"

输入地址:www.example.com/choice/ 我得到了404.

我尝试了对规则的修改:

RedirectMatch "^/choice\/$" "/choice/home.html"

回收服务器,但我仍然得到404.

这是我设定的条件:

RewriteCond %{REQUEST_URI} ^/choice/*

我的目标是让它重定向到同一页面,无论最终/是否存在于地址中。有人有任何见解吗?谢谢!

1 个答案:

答案 0 :(得分:1)

RedirectMatchRewriteCond彼此无关。第一部分是mod_alias的一部分,第二部分是mod_rewrite的一部分 - 这是两个独立的模块。

您可以使用以下方法完成重定向:

RewriteEngine on
RewriteRule ^choice/?$ /choice/home.html [R=302,L]

将302更改为301以使重定向成为永久(缓存)。