URL从基本重写(不带前缀).htaccess

时间:2015-04-23 03:29:12

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

我正在开发一个品牌的短链接网站,我需要看到这样的链接:

http://demo-name.com/[shortvalue]

我理解如何执行以下操作:

http://demo-name.com/l/[shortvalue]

使用基本重写规则,但我不确定如何在没有l前缀的情况下执行此操作。

我还需要能够去

http://demo-name.com/file.php

运行某些文件,因此需要这样做。

如果也有可能,我希望能够有一个

http://demo-name.com/[shortvalue]?key=val&key2=val2
                                 ^^^^^^^^^^^^^^^^^^

我的网址末尾的查询字符串,所以如果[QSA]也可以,那就太棒了!

1 个答案:

答案 0 :(得分:2)

您可以测试文件是-d中的目录(-f)还是文件(RewriteCond)。

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/\.]+)$ index.php?shorturl=$1 [L,QSA]

此规则将重写任何“短值”,而不会在index.php?shorturl=shortvalue处添加斜线或点。