【问题标题】:Apache RewriteRule include whatever after the stringApache RewriteRule 包含字符串之后的任何内容
【发布时间】:2014-12-13 18:14:08
【问题描述】:

我的网站根目录 .htaccess 中有一个 RewriteRule,它可以防止人们从我的网站下载 zip 文件,除非他们在上面。它是这样的:

RewriteCond %{HTTP_REFERER} !^http://(www.)?example.com/ [NC]
RewriteCond %{HTTP_HOST} !^\.example\.com$ [NC]
RewriteCond %{REQUEST_URI} \.(doc|zip|pdf)$ [NC]
RewriteRule .*.(doc|zip|pdf)$ http://example.com/ [nc] 

问题是,当您键入一个包含 zip 文件的 url,然后添加任何字符(下面的示例)时,它会将您发送到 webhost 404 页面,而不是我自己的 Wordpress 404 / example.com

http://example.com/some.zip/
http://example.com/some.zip/123
http://example.com/some.zip/asd

谁能告诉我如何改变它?

【问题讨论】:

    标签: wordpress apache .htaccess mod-rewrite


    【解决方案1】:

    不要在.zip 之后使用$ 锚点。

    RewriteCond %{HTTP_REFERER} !^http://(www.)?example.com/ [NC]
    RewriteCond %{HTTP_HOST} !^\.example\.com$ [NC]
    RewriteRule \.(doc|zip|pdf)(/|$) http://example.com/ [L,NC,R]
    

    【讨论】:

    • 谢谢! :) 这完美无瑕,我想我可以在这里简单地问一下,而不是数小时的谷歌搜索和尝试这么多不同的东西,嘘..
    猜你喜欢
    • 2011-10-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-20
    • 2014-06-29
    • 1970-01-01
    • 2012-06-02
    • 1970-01-01
    相关资源
    最近更新 更多