大家好。我开始编写自己的“URL缩短器”。基本思路是使用example.com/12345重定向到另一个URL。这种“匹配”是通过使用.htaccess将内容重定向到一个脚本(与我们现在无关)来完成的。
我的.htaccess目前看起来像这样:
RedirectMatch 302 ^/\w{5}$ /redir.php
重定向匹配任何正好为5的字符串,并将其发送到我的PHP脚本,在该脚本中实际重定向到扩展的URL。唯一的问题是我无法找到一种正确的方法来获取原始网址,将匹配的网址添加到变量中。
作为旁注,整个事情发生在我设置的VPS上,知识很少,所以如果这个问题可以来自缺少的配置($ _SERVER ['HTTP_REFERER']不起作用),然后期望我的配置不是100%正确和按标准。
编辑:从RedirectMatch更改为RewriteRule,仍然无法正常工作。
RewriteRule ^\w{5}$ /redir.php [R,L]
答案 0 :(得分:1)
您可以使用以下规则:
RewriteRule ^(\w{5})$ /redir.php?redir=$1 [R,L]
这会将5个字母的字符串作为querystring param redir
发送。您可以在redir.php
中访问以下内容:
$_GET['redir']
修改或者@LawrenceCherone建议你可以在redir.php中使用$_SERVER['REQUEST_URI']
。但为此,您必须在NC
中使用.htaccess
标记,而不是:
RewriteRule ^(\w{5})$ /redir.php [NC,L]