【问题标题】:Use .htaccess RewriteCond and RewriteRule to redirect file使用 .htaccess RewriteCond 和 RewriteRule 重定向文件
【发布时间】:2015-01-05 19:26:19
【问题描述】:

我正在尝试使用 RewriteCond 和 RewriteRule 对来重定向来自

的访问者

domain.com/Online_Statement_Instructions_(Owner).pdf

domain.com/?page=viewer&viewer=G&fileID=5。

RewriteCond %{QUERY_STRING} ^Online_Statement_Instructions_\(Owner\)\.pdf$
RewriteRule (.*) /?page=viewer&viewer=G&fileID=5 [R=301,L]

但是,我不确定我是否正确地转义了字符,甚至不确定规则是否正确编写。无论如何,规则不起作用:当有人访问 domain.com/Online_Statement_Instructions_(Owner).pdf 时,他们不会被带到 domain.com/?page=viewer&viewer=G&fileID=5

如何获得 RewriteCond 和 RewriteRule 对以将访问者从该文件重定向到该页面?

【问题讨论】:

    标签: apache .htaccess mod-rewrite redirect


    【解决方案1】:

    如果您的访问者正在访问此 URL:

    domain.com/Online_Statement_Instructions_(Owner).pdf
    

    那么这不是真正的QUERY_STRING,它是REQUEST_URI,你可以使用这个规则:

    RewriteEngine On
    
    RewriteRule ^Online_Statement_Instructions_\(Owner\)\.pdf$ /?page=viewer&viewer=G&fileID=5 [R=302,NC,L,QSA]
    

    【讨论】:

    • 感谢您的帮助,但它似乎不起作用。当我访问exampledomain.com/Online_Statement_Instructions_(Owner).pdf 时,我得到一个 404,而不是被重定向到 exampledomain.com/?page=viewer&viewer=G&fileID=5。这是为什么呢?
    • 这条规则在我的 Apache 上运行良好。在这个规则之前你有什么规则吗?确保这是您在DocumentRoot/.htaccess 中的第一条规则
    • 只需将其移至顶部即可。感谢您的帮助!
    猜你喜欢
    • 2017-08-13
    • 2012-04-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-16
    相关资源
    最近更新 更多