【问题标题】:URL rewriting with .htaccess not passing parameter使用 .htaccess 重写 URL 不传递参数
【发布时间】:2012-04-07 06:34:01
【问题描述】:

我正在使用 php。我想将每个请求重定向到 index.php 文件并在那里访问参数,例如,mysite.com/a 应该重定向到 mysite.com/index.php?id=a 以便我可以使用代码访问参数$_GET["id"], 为此,我创建了一个带有以下代码的 .htaccess 文件。

Options +FollowSymlinks
RewriteEngine on
RewriteRule [a-z] index.php?id=$1 [NC]

注意:这里我正在考虑使用小写字母的每个请求。

我正在尝试像这样访问我的 index.php 文件中的 id:

<?php
echo "sample redirection: <br/>";
echo $_GET["id"];
?>

这是重定向但不传递参数。所以我的输出是这样的:

sample redirection:

它没有打印参数。帮助。

【问题讨论】:

  • 如果您使用整数,则您没有将整数添加到重写器中。
  • 我现在不使用整数,我只需要字母的解决方案。

标签: php .htaccess mod-rewrite url-rewriting


【解决方案1】:

[a-z] 后面需要一个美元符号。

RewriteRule ([a-z])$ index.php?id=$1 [NC]

请注意,[a-z] 只会匹配一个字母。要匹配任何字符串,请使用:

 RewriteRule ([a-z]*)$ index.php?id=$1 [NC]

【讨论】:

  • 您正在向您的页面传递信件,对吗? [a-z] 是字母 a-z 的集合(非常明显),因此尝试将数字作为参数传递是行不通的。
  • 另外,您是否在 Apache 中打开了 mod_rewrite
  • 我想要“mysite.com/”之后的任何东西作为参数,我没有将数字作为参数传递,如何在代码中访问该参数?
  • 是的,我不认为如果不打开 mod_rewrite,它会重定向到 index.php,对吧?
  • 刚刚编辑了我的答案。它可以在我的本地服务器上运行,刚刚测试过。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-05-20
  • 1970-01-01
  • 1970-01-01
  • 2014-06-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多