.htaccess htaccess:Mediafire.com类URL
我正试图想出一些修改来翻译.htaccess htaccess:Mediafire.com类URL,.htaccess,mod-rewrite,.htaccess,Mod Rewrite,我正试图想出一些修改来翻译http://example.com/?7gudznrxdnu进入http://example.com/view.php?id=7gudznrxdnu 但任何其他页面都将正常运行,如http://example.com/contact等等。我认为这会起作用: RewriteEngine On RewriteCond %{QUERY_STRING} ^[a-z0-9]+$ RewriteRule ^$ view.php
http://example.com/?7gudznrxdnu
进入http://example.com/view.php?id=7gudznrxdnu
但任何其他页面都将正常运行,如
http://example.com/contact
等等。我认为这会起作用:
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服务器上进行了测试,我还没有发现任何bug。您应该尝试(在.htaccess中):
如果index.php存在,这会将
/?asdf123
重定向到/index.php?asdf123
。我的回答解决了您的问题吗?如果是这样,如果你接受我的回答,我会很高兴的!:-)谢谢
RewriteEngine On
RewriteRule ^\?([^/\.]+)?$ view.php?id=$1 [L]