使用基于用户代理的.htaccess将网页重定向到其他网页
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用基于用户代理的.htaccess将网页重定向到其他网页相关的知识,希望对你有一定的参考价值。
我正在制作一个android应用程序(无法将其发布到Play商店,因为我的父母不会让我支付开发者费用)所以,我希望用户能够在应用程序内检查应用程序更新。
我已经想到了自己的方式,因为我无法实现我在互联网上找到的其他方式。
现在,我有一个版本检查页面:“https://app.brokenhearts.ml/check-update.html”。此外,还有一个下载更新页面:“https://app.brokenhearts.ml/updated.html”。
我已将自定义用户代理设置为应用程序“Broken Hearts / 1.0”。到目前为止工作正常,因为从应用程序加载网站时,他们正在显示自定义用户代理。我将使用每个版本更新应用程序的用户代理(例如,应用程序版本2.0将具有用户代理“Broken Hearts / 2.0”)。
因此,每当用户检查更新时,应用程序将在webview中加载“https://app.brokenhearts.ml/check-update.html”(用户代理“Broken Hearts / 1.0”)。现在,当这是最新的更新时,我不会添加任何特殊的.htaccess规则来重定向它,因此,应用程序通常会加载“https://app.brokenhearts.ml/check-update.html”。但是,假设我发布v2.0,仍然在v1.0上的用户仍将其用户代理设置为“Broken Hearts / 1.0”,因此,在检查更新时,它们将被重定向到“https://app.brokenhearts.ml/updated.html” 。
因此,基本上,每当我发布应用程序更新时,我都会更新其用户代理并更改.htaccess以将用户从旧用户代理重定向到“下载更新页面”。因此,来自任何其他用户代理的用户应保持不受影响,并且应该能够正常加载“版本检查页面”。
所有这些都将基于用户代理和.htaccess。我认为有可能,我只是无法制作正确的.htaccess代码。
编辑:我试图使用这个代码,我从Apache文档中发现并根据我的需要修改它:
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_USER_AGENT} "^(Broken Hearts/1.0)$"
RewriteRule "^/check-version.html" /updated.html [R=301,]
但是,它给出了HTTP错误500。
好吧,我找到了解决方案!
我创建了一个名为“update”的文件夹,并将.htaccess放入其中。将其修改为以下内容:
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_USER_AGENT} "^(Broken Hearts/1.0)$"
RewriteRule ^$ https://app.brokenhearts.ml/updated.html [R,L]
RewriteRule ^$ https://app.brokenhearts.ml/check-version.html [L]
我在应用程序中将更新检查器指向https://app.brokenhearts.ml/update/。
所以,现在,如果用户代理与我的自定义代理匹配,它将被正确地重定向到更新,如果它是最新的,它将被重定向到预期的检查版本。
现在,每当我发布更新时,我都必须在新规则修改.htaccess时如下:
Suoopse,我发布了v3.0更新,用户仍在使用1.0和2.0,然后我的新.htaccess将是:
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_USER_AGENT} "^(Broken Hearts/1.0)$"
RewriteRule ^$ https://app.brokenhearts.ml/updated.html [R,L]
RewriteCond %{HTTP_USER_AGENT} "^(Broken Hearts/2.0)$"
RewriteRule ^$ https://app.brokenhearts.ml/updated.html [R,L]
RewriteRule ^$ https://app.brokenhearts.ml/check-version.html [L]
我试过了它,它的工作原理。发布它只是希望有一天它可能会帮助别人。
以上是关于使用基于用户代理的.htaccess将网页重定向到其他网页的主要内容,如果未能解决你的问题,请参考以下文章