【问题标题】:htaccess rewrite rule for specific ajax url特定ajax url的htaccess重写规则
【发布时间】:2015-11-19 13:21:34
【问题描述】:

我正在使用

RewriteCond %{HTTP_COOKIE} !^.*wordpress_logged_in.*$ [NC]
RewriteRule ^wp-admin/admin-ajax.php(.*)$ dl-file.php?file=$1 [QSA,L]

保护使用 admin-ajax.php 调用的 worpdress 文件免受未登录用户的影响。但这会破坏所有访问者的 ajax - 所以有些东西不适用于非注册用户。

我怎么能只为特定的 url 指定一个重写规则,例如这个:

RewriteRule ^wp-admin/admin-ajax.php?action=ajax_request&fn=download&id=(.*) [QSA,L]

id 将是一个文件的数字。 有没有办法用 htaccess 做到这一点?

我使用 dl-file.php 关注了用户 hakre https://wordpress.stackexchange.com/questions/37144/how-to-protect-uploads-if-user-is-not-logged-in

谢谢!

广告

【问题讨论】:

  • 您要重写的目标网址是什么?
  • 你好 Starkee,这是 wp-content 中的上传文件夹。谢谢
  • 您的 RewriteRule 缺少目标 URL。现在确定它是如何工作的。
  • 我编辑了这个问题,谢谢。

标签: ajax wordpress apache .htaccess mod-rewrite


【解决方案1】:

您可以基于 %{QUERY_STRING} 变量添加另一个 RewriteCond 以定位特定 URL:

RewriteCond %{QUERY_STRING} (?:^|&)action=ajax_request&fn=download&id= [NC]
RewriteCond %{HTTP_COOKIE} !^.*wordpress_logged_in.*$ [NC]
RewriteRule ^wp-admin/admin-ajax\.php$ dl-file.php?file=$1 [QSA,L]

【讨论】:

  • 嗨阿努巴瓦!非常感谢!这似乎正是要走的路。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-12-06
  • 2016-11-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多