【问题标题】:Is it possible to extract var from dummy url, use it in meta, but display original dummy url?是否可以从虚拟 url 中提取 var,在 meta 中使用它,但显示原始虚拟 url?
【发布时间】:2015-09-30 22:24:32
【问题描述】:

假设我有以下网址:example.com/123456

该网址不指向任何内容 - 123456 是一个变量。
使用 PHP 和/或 htaccess 我想知道我是否可以:

  1. 获取“123456”变量
  2. 将 var 推入元标记中 example.com/index.php
  3. 在地址栏中显示原始网址, 但显示从 example.com/index.php 重定向的内容(123456 是 忽略,它只是一个虚拟网址)。

我可以通过 htaccess 重写来完成 1 和 2。我有一种感觉,我可以通过 javascript 执行 #3,但我想知道是否有更清洁的解决方案不会使地址栏发生超出需要的更改。另外,我不想装腔作势——我想知道这是否是一个合法的过程?

这是到目前为止我对 .htaccess 的了解:

RewriteEngine on
RewriteRule ^([A-Za-z0-9\+/=]+)$ ?t=$1 [NC,R=301,L]

对于 index.php,我只是在使用:

<meta name="foo" content="https://example.com/<?php echo $_GET['t'] ?>" />

所有这些都有效,但是为了在 php 中获取元变量,url 被更改为 example.com/?t=123456。我想显示虚拟网址:example.com/123456 但显示来自 example.com/index.php 的内容

我的问题和可能重复的问题之间的区别在于我已经在使用重写。另请参阅我的问题的答案,可能的重复项中没有提到。

【问题讨论】:

  • 首先向我们展示您尝试过的代码,我们可能会帮助您修复它。
  • @TinyGiant 我的问题的解决方案是使用 [PT](而不是 [R=301]),如您提到的链接的第一部分所示。如果您想添加官方答案,我会接受,否则我可以为自己的问题写一个摘要答案。再次感谢!

标签: javascript php .htaccess mod-rewrite


【解决方案1】:

解决我的问题的方法是使用 [PT] 标志而不是 [R=301] 标志。 [PT] 表示“直通”,允许您在不更改地址的情况下显示新的 url。我正在使用的新 .htaccess 代码:

RewriteEngine on
RewriteRule ^([A-Za-z0-9\+/=]+)$ ?id=$1 [NC,PT,L]

感谢 Tiny Giant 提供的有用链接,并为我指明了正确的方向: http://httpd.apache.org/docs/2.4/rewrite/remapping.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-10-17
    • 2011-12-02
    • 1970-01-01
    • 2010-09-08
    • 2020-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多