我知道这附近一定有答案,但我找不到。
在同一个域中有一个典型的301重定向规则:
Redirect 301 /path/to/strange-url.htm /path/to/new/canonical-url.htm在稍后的htaccess文件中,有一个针对canonical-url的重写规则
RewriteRule ^([^/]+)/([^/]+)([^/]+)/([^-]+)-([^.]+)\.htm$ php/page.php?var1=$1&var2=$2&var3=$3&var4=$4&var5=$5 [NC,L]问题是,一旦301重定向激活,我的新url就会变成:
/path/to/new/canonical-url.htm?var1=xxxx&var2=xxxx&var3=xxxx&var4=xxxx&var5=xxxx如何才能避免这种情况,并且只维护干净的url:/path/to/new/canonical-url.htm呢?
发布于 2013-02-06 23:06:16
好的,我终于找到了一个可行的解决方案
我将所有重定向301规则更改为RewriteRule R=301,L,因此:
Redirect 301 /path/to/strange-url.htm /path/to/new/canonical-url.htm变成了
RewriteRule ^/path/to/strange-url.htm http://www.example.com/path/to/new/canonical-url.htm [R=301,L]此外,在实际重写之前,我已经移动了所有以前的重定向
发布于 2013-02-06 16:26:41
看起来你有一个循环,尝试在请求的URI上添加条件,比如:
RewriteCond %{REQUEST_URI} !^php/page.php
RewriteRule ^([^/]+)/([^/]+)([^/]+)/([^-]+)-([^.]+)\.htm?$ php/page.php?var1=$1&var2=$2&var3=$3&var4=$4&var5=$5 [NC,L]https://stackoverflow.com/questions/14724441
复制相似问题