如何为不同的URL写下面的htaccess重写规则

时间:2011-05-04 09:02:15

标签: apache mod-rewrite

我正在使用PHP创建的网站。

开发环境是Windows(使用xampp)

根据我们作为url变量传递给index.php文件的“page”变量的值显示网站页面。

即。的 http://example.com/index.php?page=xyz

上面的网址指向xyz.php文件

大约有50页(将来可以增加)。

我希望我的网址像这样

http://example.com/xyz

为了实现这一点,我在.htaccess文件中写了以下.htaccess rule(在项目的根文件夹中)

RewriteRule ^([^/]*)$ /index.php?page=$1 [L]

但它根本不起作用。

另一个网址是 的 http://example.com/index.php?page=abc&name=gaurav&id=10&page_no=2

我希望这个网址像这样显示

http://example.com/abc/gaurav/10/2

我举例说明了网址的不同形式,但页面变量将始终存在于网址中。

如果我为上述两个网址提供规则,则无效(显示500内部服务器错误)

请帮我写下这条规则。

1 个答案:

答案 0 :(得分:1)

尝试

RewriteRule ^([^/]+)$ index.php?page=$1 [L]

所以是+而不是明星。它将使用所有字符,直到找到正斜杠(/)