正则表达式url重写为短URLS

时间:2013-12-08 16:57:03

标签: regex .htaccess mod-rewrite url-rewriting

我一直有一个小问题,我有一个简短的URL系统可以像这样使用:

domain.com/KeiBf3

那就是

domain.com/url.php?u=KeiBf3

然而我还有其他的东西,比如

domain.com/file.ext

我一直在添加内容,但由于我的正则表达式是以某种方式进行的,所以任何东西(例如file.ext)都被调用:

domain.com/url.php?u=file.ext

我的临时解决方案是为我使用的每个文件手动添加url重写规则,让它们通过而不是调用主重定向。我似乎无法解决这个问题,可能限制任何有“。”的问题。其中的角色,让它通过,这是我目前的重写规则,任何人都可以帮助我吗?

"^/([a-zA-Z0-9]+)" => "/url.php?u=$1"

我正试图这样做,所以这也不会抓住“。”字符,并在URL的末尾添加结尾“/”,可选。

1 个答案:

答案 0 :(得分:0)

您可以在DOCUMENT_ROOT/.htaccess文件中使用此规则:

RewriteEngine On

RewriteRule ^([a-zA-Z0-9]+)/?$ /url.php?u=$1 [L,QSA]