【问题标题】:Need rewrite rule with wildcard需要使用通配符重写规则
【发布时间】:2019-05-22 18:55:27
【问题描述】:

我需要一个 htaccess 重写规则来重写:

https://example.com/accounts/{user}/info

https://example.com/accounts/info

{user} 将是动态部分,其中此目录不可用,因此它需要是规则中的通配符部分。

由于它将是一个将查询帖子发送到的 URL,我需要转发所有查询参数。

【问题讨论】:

    标签: .htaccess mod-rewrite url-rewriting


    【解决方案1】:

    在内部重写请求(即浏览器地址栏中的 URL 不变),您可以在文档根目录的 .htaccess 文件中执行类似以下操作:

    RewriteEngine On
    
    RewriteRule ^accounts/[^/]+/info$ accounts/info [L]
    

    “通配符”正则表达式 [^/]+ 匹配除斜杠之外的 1 个或多个字符(因此它不会占用下一个路径段)。如果{user} 应该匹配特定模式,那么正则表达式应该更具体。

    原始请求中的任何查询字符串参数都会传递到目标 URL。

    【讨论】:

    • 接缝不工作结果 -> 404 未找到(但信息文件已到位)
    • 您的文件实际上是否称为“信息” - 没有文件扩展名?你的.htaccess 文件中还有其他指令吗?
    • 在 info 文件的目录中还有另一个 Htaccess 删除了 .php 所以通常该文件是 info.php
    • 在这种情况下,您应该直接重写为info.php,而不是info。但是那个辅助.htaccess 文件不应该“删除”这个.php 扩展。
    • 请在您的问题中包含这些.htaccess 文件的内容,以及您的目录结构摘要。
    猜你喜欢
    • 1970-01-01
    • 2014-06-09
    • 1970-01-01
    • 2012-12-15
    • 2011-12-28
    • 1970-01-01
    • 2017-01-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多