我有多个 apache 重写不同的 Query_String 转换为 nginx:
ServerName oldsite.com
RewriteCond %{QUERY_STRING} ^ubb=showflat&Number=662213$
RewriteRule ^/ubbthreads/ubbthreads.php$ http://newsite.com/1/? [R=301,NC,L]
RewriteCond %{QUERY_STRING} ^ubb=showflat&Number=662214$
RewriteRule ^/ubbthreads/ubbthreads.php$ http://newsite.com/2/? [R=301,NC,L]
-->
server {
listen 80;
server_name oldsite.com;
location ~ /ubbthreads/{
if ($arg = "ubb=showflat&Number=662213"{
rewrite ^ubbthreads/ubbthreads.php http://newsite.com/1/? permanent;
}
if ($arg = "ubb=showflat&Number=662214"{
rewrite ^ubbthreads/ubbthreads.php http://newsite.com/2/? permanent;
}
}
那是正确的方法吗?如果没有 if ,还有另一种方法可以做到这一点吗?
您也许可以为它使用地图。
然后在你的位置
请注意,当您将每个请求重定向到该位置时,您只能避免 if 。如果您仅在 Number 是特定的东西或已设置时才需要重定向,那么您将无法避免 if 和在更坏的情况下(仅当特定的东西时)您根本无法使用地图。