.htaccess重写导致404

时间:2012-08-04 11:33:53

标签: .htaccess rewrite http-status-code-404

我将.htaccess设置为重写'友好网址' - 第一个正常工作并按原样重写,但第二个,以完全相同的方式编写不起作用并产生404.I我不确定我哪里出错了。

以下内容正确地重写为mysite.com/1:

# Setup conditions for internal rewrite of DYHAMB
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# Rewrite for DYHAMB
RewriteRule ^(0|[1-9]\d{0,2})$ /episode.php?episode=$1&podcast=DYHAMB [L,QSA]
# External redirect for DYHAMB
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+episode\.php\?episode=(\d+)\&podcast\=DYHAMB [NC]
RewriteRule ^ /%1? [R=301,L]

但是这应该重写为mysite.com/new/1但实际上会返回404:

# Setup conditions for internal rewrite of new
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# Rewrite for new
RewriteRule ^(0|[1-9]\d{0,2})$ /episode.php?episode=$1&podcast=new [L,QSA]
# External redirect for new
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+episode\.php\?episode=(\d+)\&podcast\=new [NC]
RewriteRule ^ /new/%1? [R=301,L]

1 个答案:

答案 0 :(得分:0)

您需要匹配重定向URI的“新”部分:

RewriteRule ^new/(0|[1-9]\d{0,2})$ /episode.php?episode=$1&podcast=new [L,QSA]