1

我想使用 PHP 和 Apache/.htaccess 来缩短链接。

这是我网站上的链接的外观:

https://mysite.com/item/this-is-a-book-on-toasters

以下是我希望缩短链接查找上述链接的方式。

https://ms.co/Im8y2x

目前,这是我的 .htaccess 文件中的内容:

RewriteCond %{HTTP_HOST} ^ms\.co$ [NC]
RewriteCond %{HTTPS} =on
RewriteRule ^(.*)$ https://mysite.com/item/$1 [L,R=301]

所以去 ms.co 确实会重定向到 mysite.com。我的问题是我在 mysite.com/item 上的 PHP 代码不知道 6 位字符串(在本例中为Im8y2x),因此我无法在数据库中查询 6 位字符串的匹配 URI(在本例中为/this-is-a-book-on-toasters)。

我知道我需要在我的 .htaccess 重写规则中添加一些东西我只是不确定它是什么。有人可以帮忙吗?

4

2 回答 2

1

我想出了我自己的问题。如果您只是省略,R=301那么您将保留 URI(在本例中为Im8y2x),然后您可以使用脚本语言(在我的示例中为 PHP)访问它,以将其重定向到完整长度的 URI。

所以代替这个:

RewriteRule ^(.*)$ https://mysite.com/item/$1 [L,R=301]

做这个:

RewriteRule ^(.*)$ https://mysite.com/item/$1 [L] 
// the only difference is the lack of ",R=301"
于 2012-07-14T01:20:31.097 回答
0

这个怎么样?

RewriteCond %{HTTP_HOST} ^ms\.co/$1 [NC]
RewriteCond %{HTTPS} =on
RewriteRule ^(.*)$ https://mysite.com/item/$1 [L,R=301]
于 2012-07-12T20:50:04.830 回答