RewriteCond 和 RewriteRule 正确重定向并覆盖 .htaccess 文件中的 301 状态

RewriteCond 和 RewriteRule 正确重定向并覆盖 .htaccess 文件中的 301 状态

我有一个 Android 应用可以加载脚本http://example.com/apps-support/ads/ads.php?appName=my_appmy_app可能会改变)。几天前,我的托管服务提供商对服务器进行了一些更改,上面的脚本开始返回301 永久移动状态。现在,当我请求我的脚本时,它会返回301 永久移动状态,然后重定向到根目录(https://example.com?appName=my_app)。为什么会发生重定向? 301 状态 重定向到根目录 Android 应用程序中的逻辑会拦截此重定向并尝试打开此 URL(之前,它工作正常,因为没有重定向)。由于我无法更新应用程序来修复此问题(即更改httphttps)。我的提供商由于某种原因也无法修复此问题。因此,我认为唯一的解决方案是修改.htaccess文件。因此,我希望服务器将我的请求重定向到https同时返回(覆盖)状态200, 如下所示: 适当的重定向 是否可以?

我的.htaccess文件位于根目录中:

Options +FollowSymLinks
RewriteEngine On

RewriteCond %{QUERY_STRING} ^appName=(.*)$
RewriteRule ^http://example.com/apps-support/ads/ads.php$ https://example.com/apps-support/ads/ads.php?%{QUERY_STRING} [R=301,L]

不幸的是,它不起作用。如能提供任何帮助,我将不胜感激。

答案1

最后,我的托管服务提供商帮助我解决了这个问题。我必须修改我的.htaccess文件,如下所示:

RewriteCond %{SERVER_PORT} !^443$
RewriteCond %{REQUEST_URI} !^/apps-support/ads/ads.php1$
RewriteRule (.*) https://example.com/$1 [L,R=301]

现在一切都按预期进行。

相关内容