Apache 如何重写包含变量的URL?

Apache 如何重写包含变量的URL?,apache,.htaccess,mod-rewrite,Apache,.htaccess,Mod Rewrite,我有一个网站,它利用GET变量来决定显示什么 @session_start(); @extract($_GET); @extract($_POST); . . . if (!$menu) { include("home.php"); } if ($menu=='buy') { include("buy.php"); } if ($menu=='invalidbuy') { include("invalidbuy.php"); } if ($menu=='buydone') { include("

我有一个网站,它利用GET变量来决定显示什么

@session_start();
@extract($_GET);
@extract($_POST);
.
.
.
if (!$menu) { include("home.php"); }
if ($menu=='buy') { include("buy.php"); }
if ($menu=='invalidbuy') { include("invalidbuy.php"); }
if ($menu=='buydone') { include("buydone.php"); }
.
.
.
我想我必须使用.htaccess文件将我的URL从“/index.php?menu=faq”重命名为“/faq”。如何执行此操作???

您可以使用以下命令将任何路径请求(如
/
foobar
)内部重写为
/index.php?menu=
foobar


附加功能确保只重写不存在的文件(
!-f
)。

以这种方式使用提取是非常短视的。如果有人后来添加了一个与变量一致的参数,该怎么办?i、 一些代码说如果($logged_in){/*Do logged in stuff*/}用户转到script.php?logged_in=1
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^[^/]+$ index.php?menu=$1 [L]