你如何使用htaccess重写URL?

时间:2013-04-27 18:22:33

标签: .htaccess mod-rewrite

我正在尝试使用htaccess将我的网址写为localhost / username而不是localhost / profile.php?id = username

我查了一下,这就是我发现的解决方案

DirectoryIndex index.php
RewriteEngine On
RewriteRule ^(.*)$ /profile.php?id=$1 [L]

这是来自此stackoverflow问题htaccess rewrite for query string的精确副本,但是,由于某种原因,它总是返回500错误。因为我不是htaccess的专家,所以我不确定为什么它会给我这个。我几乎只是发现代码修改它以适合我的使用。

明确打开了Mod_rewrite。所以我知道这不是问题所在。知道我的代码有什么问题吗?

修改

这是apache错误日志返回的内容。

[Sat Apr 27 14:20:10.558122 2013] [core:error] [pid 3244:tid 1688] [client 127.0.0.1:58653] AH00124:由于可能的配置错误,请求超出了10次内部重定向的限制。如有必要,使用'LimitInternalRecursion'增加限制。使用“LogLevel debug”获取回溯。

2 个答案:

答案 0 :(得分:1)

如果您的评论确实是重定向循环,请尝试在规则之前立即添加此行:

RewriteCond %{REQUEST_URI} !-f

答案 1 :(得分:0)

它所说的/profile.php?id=$1部分是重写你的地方。如果那样;它不是一个文件,那么它会显示一个错误,所以将它更改为你希望它重写的任何文件。

希望这有帮助

  • 凯文