htaccess 301重定向到rewriterule

时间:2014-07-31 08:14:33

标签: php apache .htaccess mod-rewrite redirect

我正在使用.htaccess更改我的网站网址。

到现在为止,我正在使用

RewriteRule ^folder/([^/.]+)/p([0-9]+)/?$ folder/handler.php?name=$1&p=$2 [L]

现在,我想更改“-p”的“/ p”。

我试过

RewriteRule ^folder/([^/.]+)/p([0-9]+)/?$ ^folder/([^/.]+)-p([0-9]+)/?$ [L, R=301]

但是当我尝试访问这两个网址时,它会给我一个500错误。

有没有办法从第一个到第二个制作301?还是其他任何选择?

2 个答案:

答案 0 :(得分:1)

几个问题:

  1. R=301
  2. 之前有空格
  3. RewriteRule的RHS(目标方)您有正则表达式
  4. 保持这样的规则:

    RewriteRule ^(folder/[^/.]+)/(p[0-9]+/?)$ /$1-$2 [L,NC,R=301]
    
    RewriteRule ^folder/([^.-]+)-p([0-9]+)/?$ folder/handler.php?name=$1&p=$2 [L,NC,QSA]
    

答案 1 :(得分:0)

我是这样做的:

RewriteEngine On
RewriteCond %{HTTP_HOST} !^www*******com$ [NC]
RewriteRule ^(.*)$ www.******.com/$1 [L,R=301]

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.html\ HTTP/
RewriteRule ^index\.html$ www.*******.com/ [R=301,L]

Redirect /..../p /....-p