将查询字符串url重定向到.htaccess PHP中的另一个URL?

时间:2017-07-20 08:04:05

标签: php .htaccess redirect

我想重定向

  

https://example.com/uploads/cms_files/GENERAL-TERMS-AND-CONDITIONS.pdf?docs/GENERAL_TERMS_AND_CONDITIONS.pdf

  

https://exmaple.com/uploads/cms_files/GENERAL-TERMS-AND-CONDITIONS.pdf

在核心php中使用.htaccess文件,但它没有重定向,因为我有?在我的网址中查询但问号后没有关键值。

有人可以帮我解决如何在.htaccess中重定向此网址的问题吗?

1 个答案:

答案 0 :(得分:2)

直接实施你所要求的是:

RewriteEngine on
RewriteCond %{QUERY_STRING} ^docs/GENERAL_TERMS_AND_CONDITIONS\.pdf$
RewriteRule ^/?uploads/cms_files/GENERAL-TERMS-AND-CONDITIONS\.pdf https://example.com/uploads/cms_files/GENERAL-TERMS-AND-CONDITIONS.pdf [R=301,QSD]

该规则同样适用于http服务器主机配置和动态配置文件(.htaccess)。如果您决定使用动态配置文件,则必须注意其解释是否已启用(AllowOverride指令),http服务器进程可以读取此文件,并且它位于右侧http主机文档文件夹中的位置。

但是你为什么要重写呢?如果存在可以使用该URL请求的对象,则可以简单地忽略查询字符串...

一般提示:您应该始终更喜欢将此类规则放在http服务器(虚拟)主机配置中,而不是使用动态配置文件(.htaccess样式文件)。这些文件非常容易出错,难以调试,它们确实会降低服务器的速度。只有在您无法控制主机配置(读取:非常便宜的托管服务提供商)或者您的应用程序依赖于编写自己的重写规则(这是一个明显的安全噩梦)的情况下,它们才被支持作为最后一个选项。 )。