我想重定向
到
https://exmaple.com/uploads/cms_files/GENERAL-TERMS-AND-CONDITIONS.pdf
在核心php中使用.htaccess文件,但它没有重定向,因为我有?在我的网址中查询但问号后没有关键值。
有人可以帮我解决如何在.htaccess中重定向此网址的问题吗?
答案 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
样式文件)。这些文件非常容易出错,难以调试,它们确实会降低服务器的速度。只有在您无法控制主机配置(读取:非常便宜的托管服务提供商)或者您的应用程序依赖于编写自己的重写规则(这是一个明显的安全噩梦)的情况下,它们才被支持作为最后一个选项。 )。