我想做一个简单的htaccess重定向。如果可以的话,希望避免PHP。
我想将用户重定向到将跟踪请求的URL,如下所示:
http://myexample.com/redirect/http%3A%2F%2Fstackoverflow.com%2Fquestions%2Fask
我的htaccess文件:
RewriteEngine on
RewriteRule redirect/(.*) $1 [L,QSA]
但是,我没有得到我想要的结果。有没有办法解码$1
的值并重定向到它? (它应该能够处理带有查询字符串的潜在长URL)任何帮助都会很棒!
答案 0 :(得分:1)
嗯这很棘手,因为它需要更改Apache配置,以便让你使用编码斜杠,例如网址中的%2F
。
首先在Apache config中添加这一行:
AllowEncodedSlashes On
重启Apache。
然后在你的root .htaccess中有这条规则让Apache解码并重定向:
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/redirect/(http.+)$ [NC]
RewriteRule ^ %1 [L,R,NE]
答案 1 :(得分:0)
您是否尝试过使用HTTP重定向?在HTTP响应状态码301中,Moved Permanently用于永久URL重定向。你可能会做Redirect 301 / http://stackoverflow.com
之类的事情。