重写规则不起作用

问题描述:

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

我想要做什么是我想要让用户在

localhost/example/user1 

类型,我想在服务器向他们展示USER1的轮廓。就是我想要的服务器从

localhost/example/group.php?u=user1 

当用户键入的第一个网址收集数据。

也就是说当用户类型,

localhost/example/user1 

用户应该能看到USER1的轮廓。

现在我已经使用下面的代码,使其工作。但它说

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

虽然帐户存在。

我的.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 
+0

是的,我确实证实....和亚它是工作。 @anubhava – bayblade567 2014-11-08 17:59:15

+0

错误了解到规则未执行,或者正则表达式与第一个参数中的任何内容不匹配。如果规则已执行,但重写的文件不存在,则会显示错误“在此服务器上未找到请求的URL /example/group.php”。您可以通过在示例目录的.htaccess中放入以下规则来测试是否发生了任何事情:'RewriteRule ^(。*)$/donotmatchthis/$ 1 [R,L]'。如果你没有被重定向到这个URL,那么你的.htaccess文件没有被读取,或者你的规则无法访问。 – Sumurai8 2014-11-08 19:01:22

+0

正在重定向到:http:// localhost/donotmatchthis/ – bayblade567 2014-11-08 19:13:40

既然你用不同的用户名不是你的问题建议你测试重写规则,它是可能的正则表达式是不正确。不要试图匹配您的用户名中可能包含的每个字符。排除用户名中不能出现的字符,即斜杠字符。

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

但是为此,它给出了“用户不存在”甚至本地主机/示例和其他网址。 – bayblade567 2014-11-08 19:59:06

+0

你没有把它放在示例文件夹中的.htaccess中? – Sumurai8 2014-11-08 20:19:06

+0

是的,我做到了。但是,无论我现在输入什么,我都会得到“用户不存在”。 – bayblade567 2014-11-08 20:20:53