将条件重写为特定URL并重定向

时间:2014-01-17 12:41:52

标签: apache .htaccess mod-rewrite redirect

我有一个重定向规则,可以重定向模式/abcd/* to http://myweb.com/abcd/*的网址。

我想应用此重定向,但/abcd/index.html除外。

我试过这个。

RewriteCond %{THE_REQUEST} !^/abcd/index
RewriteCond %{REQUEST_URI} !^/abcd/index [NC]
RewriteRule ^/abcd/(.+)$ http://myweb.com/abcd/$1 [NC,R=301,L]

我不确定它是否正确。

请建议我这样做的正确方法。

1 个答案:

答案 0 :(得分:1)

尝试使用此规则,而不在RewriteRule中使用斜杠:

RewriteCond %{REQUEST_URI} !^/abcd/index [NC]
RewriteRule ^abcd/(.+)$ http://myweb.com/abcd/$1 [NC,R=301,L]
  • 差异是^abcd/(.+)$而不是^ / abcd /(.+)$
  • 你的两个条件是多余的,所以我把它减少到一个。
  • .htaccess是每个目录指令,Apache从RewriteRule URI模式中剥离当前目录路径(从而导致斜杠)。