我需要在我的新链接中使用.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
你能帮助我吗?
答案 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