PHP-重定向301 /重写难题

在我的网站上,用户可以添加需要重定向的各种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?

但只有在需要时

上一篇:php-zend网站也需要别名


下一篇:php-Apache .htaccess:ErrorDocument和RewriteEngine无法一起使用