2017-07-20 134 views
0

我想通过在核心PHP中使用.htaccess文件重定向将.htaccess PHP中的查询字符串url重定向到另一个url?

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

但它不是重定向,因为我有吗?查询在我的网址中,但在问题3月之后没有关键值ķ。

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

+0

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

回答

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样式文件)。这些文件出了名的错误,很难调试,他们真的放慢了服务器。只有当你无法控制主机配置(读取:真正便宜的主机服务提供商)或者如果你有一个依赖编写自己的重写规则的应用程序(这是一个明显的安全噩梦) )。

+0

谢谢,这真的很有帮助 – BornCoder

相关问题