在我的网站上,用户可以添加需要重定向的各种URL.
例如;来自此:domain.com/oldpage/36/
为此:domain.com/newpage/47/
它们像这样添加到.htaccess中:
Redirect 301 /oldpage/36/ /new-page/47/
但是当访问旧页面时,他们得到以下信息:
domain.com/newpage/47/?pid=36\u0026amp;pagename=oldpage
我很确定这些重写规则导致了这种困境:
RewriteRule ([^.]+)/([0-9]+)/$index.php?pid=$2&pagename=$1
RewriteRule ([^.]+)/([0-9]+)/([^.]+) index.php?pid=$2&pagename=$1&vars=$3
但是,mod_rewrite东西不是我的强项,所以我不知道如何解决它.
有任何想法吗 ?
解决方法:
添加?使Rewrite不会将查询字符串添加到url.
所以这应该工作:
Redirect 301 /oldpage/36/ /new-page/47/?
作为预防措施,您也可以将其添加到以下内容的末尾:
RewriteRule ([^.]+)/([0-9]+)/$index.php?pid=$2&pagename=$1?
RewriteRule ([^.]+)/([0-9]+)/([^.]+) index.php?pid=$2&pagename=$1&vars=$3?
但只有在需要时