繁体   English   中英

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

[英]Redirect a query string url to another url in .htaccess PHP?

我想重定向

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文件,但由于我的URL中有?query,所以它没有重定向,但是问号后的值没有键。

有人可以帮助我如何在.htaccess中重定向此URL吗?

您所要求的直接实现是:

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样式文件)。 众所周知,这些文件容易出错,难以调试,并且确实降低了服务器的速度。 仅当您无法控制主机配置(阅读:真正便宜的托管服务提供商)或者您的应用程序依赖于编写自己的重写规则(这显然是安全噩梦)时,才将它们作为最后一个选项来支持。 )。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM