【问题标题】:Is there a way to retreive $_GET content from a modified url有没有办法从修改后的 url 中检索 $GET 内容
【发布时间】:2020-02-09 12:52:49
【问题描述】:

我正在努力使我的网址整洁。 这是我的原始网址: https://example.com/cssgzip.php?file=/assets/css/main.css 我让它看起来像这样: https://example.com/cssgzip/assets/css/main.css

我用它来删除.php 扩展:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule !.*\.php$ %{REQUEST_FILENAME}.php [QSA,L]

像这样: https://example.com/cssgzip?file=/assets/css/main.css

我用它来删除?file=

RewriteEngine On
RewriteRule ^([a-zA-Z0-9]+)/$ cssgzip.php?file=$1

像这样: https://example.com/cssgzip/assets/css/main.css

但是现在,当我在 https://example.com/cssgzip/assets/css/main.css 上运行 $_GET['file'] 时,什么都没有返回。

我试过$_REQUEST['file'] 也是空的。

我做错了什么吗?我能做些什么呢?

【问题讨论】:

  • 基本上你想从 URL 路由中解析值。如今,可能会有更多更新的方法来做到这一点,尤其是在各种可用框架的情况下。但一个简单的方法可能只是解析 URL 本身:stackoverflow.com/questions/4213946/…

标签: php .htaccess get


【解决方案1】:

通过删除?file=,您删除了file 变量的值声明,因此$_GET['file'] 没有任何值。比如你手动改变url中?file=的值,也会改变变量的值。

如果您使用 GET 方法,则需要在 url 中包含该方法。否则,请使用 POST。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-18
    • 2010-09-12
    • 1970-01-01
    • 2019-11-07
    • 2011-05-18
    相关资源
    最近更新 更多