.htaccess使用新网址中的参数重定向网址

时间:2016-06-15 10:38:21

标签: apache .htaccess mod-rewrite url-rewriting url-redirection

我需要在我的新链接中使用.htaccess文件重定向旧链接(已删除), 例如,

From: http://www.example.com/page.php?value=2 (deleted)
To: http://www.example.com/detail.php?d=150

我试过这个但是不行。如果文件(page.php)不存在,那么服务器就会给我404页面找不到。

我的.htaccess

<Files ~ "^\.(htaccess|htpasswd)$">
deny from all
</Files>
RewriteEngine On
RewriteRule http://www.example.com/page.php?value=2 http://www.example.it/detail.php?d=150 [END,R=301]
order deny,allow

你能帮助我吗?

2 个答案:

答案 0 :(得分:1)

RewriteRule directive没有收到整个网址,但是相对于你的htaccess文件所在的指令的URI部分。此外,它没有收到查询参数,您必须使用RewriteCond directive访问它们。所以,它应该是:

RewriteEngine On
RewriteCond %{QUERY_STRING} ^value=2$
RewriteRule ^page.php$ /detail.php?d=150 [R=301,L,QSD]

答案 1 :(得分:0)

尝试:

RewriteEngine on
RewriteCond %{THE_REQUEST} /page\.php\?value=2$
RewriteRule ^ http://example.it?page.php?d=150 [L,R]

这将重定向

参考: https://httpd.apache.org/docs/current/mod/mod_rewrite.html