微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用参数将txt文件重定向到html页面,然后调用该文件的内容

如何解决如何使用参数将txt文件重定向到html页面,然后调用该文件的内容

我正在尝试编写一些 RewriteRule/RewriteCond,但找不到合适的资源/教程来了解如何实现我的目标。我对正则表达式和重写规则知之甚少。

这个目标是能够在打开 Markdown 文本文件时将像 Strapdown 这样的 Markdown 库应用到它。我的想法是:

我想我知道如何使用参数将 md 文件重定向到 html 文档:

RewriteEngine On
RewriteRule ^(.*).md /markdown.html?md=$1 [QSA,L]

但是随后获取 .md 文件的 markdown.html 页面实际上正在获取 markdown.html 本身的内容(因为该规则)。

所以我的想法是在文件名的末尾添加一些字符(比如在文件名的末尾添加一个“?”:“myFile.md?”)以便能够在重写规则中捕获它.

RewriteEngine On
RewriteCond %{REQUEST_URI} !^(.*)\?$
RewriteRule ^(.*).md /markdown.html?md=$1 [QSA,L]

但这不是要走的路......或者我上次重写的合成器是错误的,我不明白为什么。

有什么想法吗?

感谢您的帮助!

解决方法

我认为问题在于我试图使用无法检测的模式(即:在我的网址末尾找到“?”)。

我将其更改为尝试查找任何数字作为参数并且它有效

<Container>
  <h1>User Details</h1>
  <Row>
     {users && users.data.map((user) => ( //update
      <Col sm={12} md={6} lg={4} xl={3}>
        <Card className="my-3 p-3 rounded">
          <Card.Body>
            <Card.Title>
              <strong>{user.name}</strong>
            </Card.Title>
            <Card.Text as="h3">{user.details}</Card.Text>
          </Card.Body>
        </Card>
      </Col>
    ))}
  </Row>
</Container>

markdown.html 文件现在按预期接收请求的 .md 文件。

,

通过查看 OP 的回答,我对其进行了一些额外的改进,请将您的 htaccess 规则文件如下。

RewriteEngine On
RewriteCond %{QUERY_STRING} !^([0-9])$
RewriteRule ^(.*)\.md /markdown.html?md=$1 [QSA,L,NC]

在 OP 的回答中所做的改进:

  • 首先在 RewriteRule 左侧转义 .md 以使其成为文字字符,否则它可能匹配 amd OR bmd 等字符串。
  • 第二次在 RewriteRule 中使用 NC 标志使其不区分大小写,以便 .md.MD 都匹配。
  • 如果您的查询字符串中可能包含超过 1 位数字,还有其他建议,请将您的 [0-9] 更改为 [0-9]+ 在 RewriteCond 部分。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。