【问题标题】:Redirect rules for 404 content using .htaccess使用 .htaccess 重定向 404 内容的规则
【发布时间】:2012-07-06 04:15:46
【问题描述】:

对于我们来说,在www.domain.com/dev/ 上放置正在进行的站点是很常见的,然后一旦客户签署了该站点以将其移动到顶层www.domain.com,我们希望能够放置一个 .htaccess文件放在顶层,这样一旦我们将站点移出 /dev,如果客户端意外转到 www.domain.com/dev/apage.php,它们就会被重定向到 www.domain.com/apage.php,但前提是 www.domain.com/dev/apage.php 不存在。

有时 dev 文件夹会被称为其他各种东西,理想情况下,我们不希望编辑 .htaccess 文件以匹配文件夹名称。

感谢您的帮助。

【问题讨论】:

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


    【解决方案1】:

    你可以做类似的事情

    基于 cmets 编辑:

    RewriteEngine On
    
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule dev/(.*)$ $1 [R=301,L]
    

    这基本上意味着如果文件不存在 - RewriteCond %{REQUEST_FILENAME} !-f - 然后将任何对 dev 的请求重写回根目录。您必须在重写规则中指定 dev/ 否则您将陷入重定向循环。

    这仅在您使用显式文件而不是所有通过index.php 路由的框架时才有效

    【讨论】:

    • 谢谢,这是一个开始,是否可以重写此规则,使其适用于任何域,而无需为每个域重写?
    • 检查我更新的示例,该示例删除了指定 url 的要求
    • 感谢您的帮助,以下似乎很适合我的目的。 RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteRule /(.*)$ $1 [R=301,L]
    • 不客气。由于您是新来的,如果它有助于解决问题,请不要忘记将答案标记为已接受。另见meta.stackexchange.com/questions/5234/…?
    猜你喜欢
    • 1970-01-01
    • 2021-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-28
    • 2019-10-04
    相关资源
    最近更新 更多