URL Shortener - .htaccess更新

时间:2015-12-09 15:40:58

标签: apache .htaccess mod-rewrite

前段时间我做了一个小缩短网址,基本上只是将用户重定向到'长网址'。

这样做的脚本被命名为short.php。

所以,我的问题:

当我第一次缩短时,我制作了一个.htaccess文件:

RewriteRule ^s/(.*)$ shorter.php?u=$1 [NC,L]

允许我重写:doma.in/s/VAR到doma.in/shorter.php?u=VAR,然后重定向到链接到VAR的页面。

上周我意识到我也可以像这样缩短我的网址:dome.in/VAR

据我所知,这也可以在.htaccess中完成。

当我仍然需要在'doma.in'和'之间使用's /'来支持网址时,问题就出现了。 'VAR'。

帮助表示感谢,谢谢:)。

1 个答案:

答案 0 :(得分:1)

使用以下方式使^s/成为可选项:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(?:s/)?(.+)$ shorter.php?u=$1 [NC,L,QSA]

添加了2 RewriteCond以确保您不会重写现有文件和目录。