【问题标题】:Reading $_GET after URL rewriteURL 重写后读取 $_GET
【发布时间】:2014-10-10 20:10:23
【问题描述】:

我不知道我是否正确地处理了这个问题。基本上我有一个网址

www.mydomain.com/openings.html?jobName=accounting-manager

我希望网址是

www.mydomain.com/openings/accounting-manager.html

所以,我将它添加到 .htaccess 中

RewriteRule ^openings/([^/]*).html$ /openings.html?\jobfilename=$1 [大]

所以 URL 可以按预期工作。现在,我想阅读此页面上的 $_GET['jobName'] 以便可以在页面上打印它。但在 URL 重写后,$_GET 变量不存在。有没有办法访问?我需要更改重写还是应该以不同的方式处理这个?

谢谢。

【问题讨论】:

  • ?\ j 转义位有什么用? \[space] 没有理由出现在 URL 中,因为它会成为查询参数名称的一部分。例如您需要访问 $_GET['\\ jobfilename'],因为 \[space] 对 url 系统没有任何意义。
  • 应该是这样吗? RewriteRule ^openings/([^/]*).html$ /openings.html?jobfilename=$1 [L]
  • 看起来更好。您还可以在脚本中执行var_dump($_GET) 以查看脚本接收的所有查询输入。
  • 好的。 var_dump($_GET) 显示数组 (0) { }
  • 也许this 能帮上忙?

标签: php url-rewriting


【解决方案1】:

这很可能是因为启用了多视图。将其放在 .htaccess 文件的顶部。

Options -MultiViews

还可以查看QSA 标志以了解您的规则。

【讨论】:

【解决方案2】:

使用此代码

<?php
$url=explode("/", $_Server['request_url']);
print_r($url);
?>

你会看到一个包含 url 的数组

【讨论】:

    猜你喜欢
    • 2011-07-08
    • 2010-10-05
    • 2011-07-07
    • 1970-01-01
    • 1970-01-01
    • 2014-02-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多