将一个缩短的.co url重定向到一个完整的lengthed.com,就像Twitter.com对t.co(php/apache)所做的那样

将一个缩短的.co url重定向到一个完整的lengthed.com,就像Twitter.com对t.co(php/apache)所做的那样,php,.htaccess,codeigniter,redirect,http-status-code-301,Php,.htaccess,Codeigniter,Redirect,Http Status Code 301,我想为我的网站制作简短的链接,以便在推文中使用。我对类似于t.co的URL感兴趣,但对如何实现重定向感到困惑 我的网站上的链接通常是这样的: https://mysite.com/item/this-is-a-book-on-toasters 下面是我希望缩短的链接看起来如何,它将重定向到上面的链接 https://ms.co/Im8y2x 基于谷歌如何做到这一点,看起来我需要做一个301重定向。 我使用的是PHP,特别是Codeigniter,我想有两个组件:PHP脚本和.htaccess

我想为我的网站制作简短的链接,以便在推文中使用。我对类似于t.co的URL感兴趣,但对如何实现重定向感到困惑

我的网站上的链接通常是这样的:

https://mysite.com/item/this-is-a-book-on-toasters
下面是我希望缩短的链接看起来如何,它将重定向到上面的链接

https://ms.co/Im8y2x
基于谷歌如何做到这一点,看起来我需要做一个301重定向。 我使用的是PHP,特别是Codeigniter,我想有两个组件:PHP脚本和.htaccess

这是我的.htaccess:

RewriteEngine on
RewriteRule ^/?$ https://mysite.com [L]
RewriteRule ^(.*)$ https://ms.co/$1 [R=301,NC]
我想我需要的PHP在


不幸的是,我无法解释这个链接上的答案来制作一个有用的脚本。有人能帮忙吗?另外,我的.htaccess看起来正确吗?

这应该是您的短链接网站(ms.co)上的.htaccess代码:

in.php应该包含对$_GET['id']进行解码的脚本(通过您提供的链接中提供的短哈希解码方法),将其与数据库中的id进行匹配,并检索它应该重定向到的页面


顺便说一下,我没有在代码中添加NC部分的原因是,使用解码方法时,大写/小写(通常)会产生不同的结果。

我回答了自己的问题。鉴于上述问题,htaccess指令应该是这样的:

RewriteCond %{HTTP_HOST} ^o-a\.co$ [NC] // the rewrite rule
RewriteCond %{HTTPS} =on //to enable HTTPS
RewriteRule ^(.*)$ https://mysite.com/page-to-handle-hash/$1 [L] //where in your application you want to send the 6-digit hash

谢谢@destraak,我正在使用Codeigniter,因此在我的URL末尾没有
.php
。您能否更正您的
重写规则
以反映这一点?而且我只有一个网站,mysite.com。我只为ms.co买了这个名字,但不知道如何将它重定向到mysite.com。您也可以对此发表评论吗?您可以根据需要修改或删除in.php。如果您为ms.co购买了webhosting,您将能够将htaccess文件放在http根目录中。如果不是这样,那么所需的操作取决于您购买的软件包。给我发一个下午。谢谢@Destralak,我不知道给你发下午,你能解释一下你想怎么做吗?呜呜,你不能在这里发下午:-)把你的详细信息发到stackoverflow[at]xnh[dot]nlhi@destrack,谢谢我给stackoverflow@xnh.nl,我的电子邮件是petersontimr@gmail.com. 如果你不明白,请告诉我。
RewriteCond %{HTTP_HOST} ^o-a\.co$ [NC] // the rewrite rule
RewriteCond %{HTTPS} =on //to enable HTTPS
RewriteRule ^(.*)$ https://mysite.com/page-to-handle-hash/$1 [L] //where in your application you want to send the 6-digit hash