htaccess:Mediafire.com就像网址一样

时间:2011-09-02 01:15:31

标签: .htaccess mod-rewrite

我正在努力想出一些mod_rewrite来将http://example.com/?7gudznrxdnu翻译成http://example.com/view.php?id=7gudznrxdnu

但是任何其他页面都能正常运行,例如http://example.com/contact等等。

2 个答案:

答案 0 :(得分:2)

我认为这会奏效:

RewriteEngine   On
RewriteCond   %{QUERY_STRING}     ^[a-z0-9]+$
RewriteRule   ^$                  view.php?id=%{QUERY_STRING}    [L]

如果您希望重写显示在浏览器的地址字段中,则必须将[L]替换为[L,R=301]

说明:查询字符串(问号后面的内容)不是RewriteRule在其匹配模式中看到的URL的一部分,因此您无法在那里检查问号。在我的解决方案中,我运行规则当且仅当(RewriteCond)查询字符串仅包含a-z和/或0-9时,我的规则仅重写以斜杠结尾的URL(除了查询字符串)。我将其重定向到view.php?id=,然后将查询字符串附加到该页面。

编辑:在我的Apache服务器上测试过,我还没有发现任何错误。

答案 1 :(得分:1)

你应该尝试(在.htaccess中):

RewriteEngine On
RewriteRule ^\?([^/\.]+)?$ view.php?id=$1 [L]