Php 重写规则不起作用

Php 重写规则不起作用,php,apache,.htaccess,mod-rewrite,url-rewriting,Php,Apache,.htaccess,Mod Rewrite,Url Rewriting,我正在使用wamp(localhost),而我的重写规则不起作用。我试图寻找解决方案,但找不到任何可行的方法 我想做的是让用户输入 localhost/example/user1 我希望服务器向他们显示user1的配置文件。也就是说,我希望服务器从中收集数据 localhost/example/group.php?u=user1 当用户键入第一个url时 即当用户输入时 localhost/example/user1 用户应该可以查看user1的配置文件 现在,我已经使用了以下代码使其工作

我正在使用wamp(localhost),而我的重写规则不起作用。我试图寻找解决方案,但找不到任何可行的方法

我想做的是让用户输入

localhost/example/user1
我希望服务器向他们显示user1的配置文件。也就是说,我希望服务器从中收集数据

localhost/example/group.php?u=user1
当用户键入第一个url时

即当用户输入时

localhost/example/user1
用户应该可以查看user1的配置文件

现在,我已经使用了以下代码使其工作。但是它说

在此服务器上找不到请求的URL/example/user1

尽管账户存在

my.htaccess文件位于localhost/example目录中。 我试着把它放在根目录中。我已尝试添加以下行

RewriteBase /example/
之后

RewriteEngine On
但似乎什么都不管用

RewriteEngine On

RewriteRule ^([a-zA-Z0-9_-]+)$ group.php?u=$1
RewriteRule ^([a-zA-Z0-9_-]+)/$ group.php?u=$1

由于您使用不同于问题所示的用户名测试了重写规则,因此正则表达式可能不正确。不要试图匹配用户名中可能包含的每个字符。排除用户名中不能包含的字符,即斜杠字符

RewriteRule ^([^/]+)/?$ group.php?u=$1 [L]

是的,我确实证实了……是的,它正在工作@Anubhavate错误告诉我们规则没有执行,或者正则表达式与第一个参数中的内容不匹配。如果执行了规则,但重写的文件不存在,则会出现错误“此服务器上未找到请求的URL/example/group.php”。您可以通过将以下规则放入示例目录中的.htaccess来测试是否发生了任何事情:
RewriteRule^(.*$/donotmatchthis/$1[R,L]
。如果您未重定向到此url,则可能是您的.htaccess文件未被读取,或者您的规则无法访问。我将被重定向到:当您输入什么url时?当我输入localhost/example/anywhere时,我想我可能遇到了错误。我的正则表达式将包含用户名,其中仅包含字母和字符,而我的用户名格式为:user.name。。。。那就是它将包括一个“.”点。你能帮我弄一下我需要的正则表达式吗?我是regex和.htaccess中的noob,所以..但对于这一点,即使是localhost/example和其他所有url,它也会给出“User doesn not exist”。您没有将它放在示例文件夹中的.htaccess中吗?是的,我放了。但无论我现在键入什么,我都会得到“用户不存在”http://localhost/example如果此规则位于文件夹
示例
中的
.htaccess
文件中,则它无法与此规则匹配。规则必须至少匹配1个字符,即使Apache为您添加了
/
,它也会匹配一个空字符串。我想
用户不存在
是来自group.php的消息吗?那就去调试吧…嘿!thanx很多…我发现了错误,那是因为,它将我的文件,如index.php和xyz.php,也作为用户名处理…这就是为什么“我得到的用户”并不总是存在的原因。我只想问最后一个问题,如何跳过这些:index.php和xyz.php,并获得所需的结果。Thanx很多…我是新来的。htaccess和regex!