我需要重定向的.htaccess从GET变量重定向到URL字符串
/search?keywords=somesearchterm
到
/search/somesearchterm
这似乎令人难以置信的基本的,但我一直在冲击我的头靠在了一个小时。
感谢您花时间看这个。
我需要重定向的.htaccess从GET变量重定向到URL字符串
/search?keywords=somesearchterm
到
/search/somesearchterm
这似乎令人难以置信的基本的,但我一直在冲击我的头靠在了一个小时。
感谢您花时间看这个。
你想用mod_rewrite实现所谓的“301重定向”。
RewriteEngine ON
RewriteRule ^/search\?keywords=somesearchterm$ /search/somesearchterm
加入正则表达式:
RewriteEngine ON
RewriteRule ^/search\?keywords=(.+) /search/$1 [R=301,L]
R=301
手段提供了301头重定向,以便在浏览器用户的URL变化,L
手段不处理任何更多的重写规则,如果这一个匹配。
如果你想要做反向 - 换句话说,如果有人去mysite.com/search/asearchterm
和你想要的网址保持不变,但“幕后”你想让它加载某些服务器脚本,这样做:
RewriteEngine ON
RewriteRule ^/search/(.+) /search.php\?keywords=$1 [L]
您无法在RewriteRule指令中匹配aginst查询字符串。使用%{THE_REQUEST}或%{QUERY_STRING}服务器变量相匹配的查询字符串:
以下规则工作正常,这种重定向
RewriteEngine On
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/search\?kewords=([^&\s]+) [NC]
RewriteRule^/search/%1? [NE,NC,R,L]
RewriteRule ^search/([^/]+)/?$ /search?keyword=$1 [QSA,NC,L]
尼斯方法和答案以及编码的其他问题,但为什么这个问题不仅仅是“添加评论”,因为你对这个问题的回答根本不是答案,链接是记录你的答案,答案应该包含回答问题的信息,而不仅仅是某个其他页面的URL – jagb 2016-09-21 17:12:35