Php URL重写时.htaccess未传递参数

Php URL重写时.htaccess未传递参数,php,.htaccess,mod-rewrite,url-rewriting,Php,.htaccess,Mod Rewrite,Url Rewriting,我正在使用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。我想将每个请求重定向到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:

它没有打印参数。帮助。

您需要在
[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,对吗?只是编辑了我的答案。它在我的本地服务器上工作,刚刚测试过。