2014-01-11 116 views
0

当前的.htaccess国防部重写重定向到404

RewriteEngine on 

RewriteRule category-([0-9]+)-(.*)-([0-9]+)\.html$ category.php?cid=$1&name=$2&page=$3.php [L] 
RewriteRule search-(.*)-([0-9]+)\.html$ search.php?term=$1&page=$2.php [L] 
RewriteRule all-covers-([0-9]+)\.html$ all-covers.php?page=$1.php [L] 
RewriteRule featured-covers-([0-9]+)\.html$ featured-covers.php?page=$1.php [L] 
RewriteRule top-downloaded-([0-9]+)\.html$ top-downloaded.php?page=$1.php [L] 
RewriteRule c-([0-9]+)-(.*)\.html$ cover.php?id=$1&name=$2.php [L] 
RewriteRule ^sitemap.xml$ sitemap.php [L] 
RewriteRule ^(.*)\.html$ $1.php [L] 

ErrorDocument 404 /404.html 

我想从这样的页面重定向到404: [http://example.com/http://example.com/c- 42.html]

请帮助

+0

我不明白?您要重定向的网址;它是'example.com/c-42.html'(按照你现有的重写规则,或者是你发布的:http://example.com/http://example.com/c- 42.html'? – BenM

回答

0

你需要做的第一件事情就是添加^预选赛您正则表达式模式:

RewriteRule ^category-([0-9]+)-(.*)-([0-9]+)\.html$ category.php?cid=$1&name=$2&page=$3.php [L] 
RewriteRule ^search-(.*)-([0-9]+)\.html$ search.php?term=$1&page=$2.php [L] 
RewriteRule ^all-covers-([0-9]+)\.html$ all-covers.php?page=$1.php [L] 
RewriteRule ^featured-covers-([0-9]+)\.html$ featured-covers.php?page=$1.php [L] 
RewriteRule ^top-downloaded-([0-9]+)\.html$ top-downloaded.php?page=$1.php [L] 
RewriteRule ^c-([0-9]+)-(.*)\.html$ cover.php?id=$1&name=$2.php [L] 

这意味着,例如,^c-([0-9]+)-(.*)\.html$将匹配http://example.com/c-42.html,但将不再匹配http://example.com/http://example.com/c-42.html。而后者将自动最终成为404.