2015-04-23 119 views
1

我开发一个品牌的一个短链接的网站,我需要有链接看起来是这样的:URL重写的.htaccess

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]是可能的,这将是伟大的!

回答

2

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

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

此规则将改写任何“的shortValue”无斜线或点到index.php?shorturl=shortvalue