【问题标题】:mod_rewrite and {QUERY_STRING}mod_rewrite 和 {QUERY_STRING}
【发布时间】:2012-08-24 11:09:51
【问题描述】:

更改了我的网址

http://www.website.com/b.php?n=45&t=example

到这里

http://www.website.com/45/example

通过使用这个 mod_rewrite

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^/?([^/]+)/(.*) /b.php?n=$1&b=$2 [L,QSA]

如何让我的查询字符串仍然有效,因为我想使用 $_GET

echo '<img src="gifs/' . $_GET["t"] . '/' . $_GET["n"] . '.gif">';

【问题讨论】:

  • 你能准确解释你的问题是什么吗? $_GET 以何种方式不包含您想要的内容?难道只是n=$1&amp;b=$2应该是n=$1&amp;t=$2吗?
  • 如果您正确地重写了 URL,您应该能够像往常一样访问 $_GET['n'] 和 $_GET['t']。您是否尝试过访问这些变量?
  • 是的,[QSA] 应该还允许您获取查询字符串吗?在这种情况下,您可以根据 $_server 变量重建 GET 数组。
  • @mario 嘿,我认为这是我上次学到的更好的问题!对不起朋友
  • @tomhallam 我已经添加了我的 $_GET 代码来获取图像

标签: php apache .htaccess mod-rewrite query-string


【解决方案1】:

您可以使用以下 .htaccess 代码将完整的 url 发送到 b.php 文件,在那里您可以使用 explode 函数拆分 url 并可以单独获取查询字符串

Options +FollowSymLinks
RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^/* b.php?url=%{REQUEST_URI} [L,NC,QSA]

【讨论】:

  • 所以我只需将它添加到我的 .htaccess 中,然后我该怎么做。我不确定你所说的爆炸功能是什么意思?干杯哥们
猜你喜欢
  • 1970-01-01
  • 2017-12-04
  • 1970-01-01
  • 1970-01-01
  • 2013-11-17
  • 1970-01-01
  • 2012-07-17
  • 1970-01-01
  • 2011-02-22
相关资源
最近更新 更多