【问题标题】:Mod rewrite to redirect to 404Mod重写以重定向到404
【发布时间】:2014-01-12 06:55:39
【问题描述】:

当前.htaccess

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]

请帮忙

【问题讨论】:

  • 我不明白?您要重定向的网址;是example.com/c-42.html(根据您现有的重写规则,还是您发布的:http://example.com/http://example.com/c-42.html

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


【解决方案1】:

您需要做的第一件事是将^ 限定符添加到您的正则表达式模式中:

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 结束。

【讨论】:

    猜你喜欢
    • 2012-08-24
    • 2016-06-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-31
    • 1970-01-01
    相关资源
    最近更新 更多