我正在尝试构建一个简单的 URL 缩短器,但遇到了一些复杂情况:
A) 在 .htaccess 中,我将如何重写 mydomain.com 以使用户可以输入 mydomain.com/4854,而页面实际上是 mydomain.com/url.php?key=4854。
B)如果我确实有那个重写规则,我怎么能确保绕过它来处理 index.php 和 add.php
非常感谢。
我正在尝试构建一个简单的 URL 缩短器,但遇到了一些复杂情况:
A) 在 .htaccess 中,我将如何重写 mydomain.com 以使用户可以输入 mydomain.com/4854,而页面实际上是 mydomain.com/url.php?key=4854。
B)如果我确实有那个重写规则,我怎么能确保绕过它来处理 index.php 和 add.php
非常感谢。
RewriteEngine on
RewriteRule ^([0-9]+)(/)?$ url.php?key=$1
如果密钥无效,请在 php 文件中重定向
在你的.htaccess
你可以做:
RewriteEngine On
RewriteRule ^([0-9]+)(/)?$ /url.php?key=$1 [QSA,L]
这会将仅包含数字的请求重写为url.php
.
然后在 中url.php
,如果找不到key,则重定向到错误页面。
让我为您省去悲伤...我正在做同样的事情,并在yourls.org上发现它是为我写的。它几乎涵盖了您需要的所有内容,并为您提供了添加自己的用户页面的选项,并为您提供了一个 API 接口供其他人使用缩短的 URL。我在几分钟内启动并运行了它,并花了几个小时修改提供的样本以准备投入生产。
即使您不使用它,mod_rewrite 解决方案也适合您。