我需要301将网址的一个网段重定向到新版本。
我的目标是重定向
www.domain.co.uk/farm/whatever /
到
www.domain.co.uk/farm_cottages/whatever /
我用来做这个的规则是:
RedirectMatch 301 ^ / farm / / farm_cottages /
但由于某种原因,它部分有效,但在最后的网址中追加?/ farm / after farm_cottages /。
www.domain.co.uk/farm_cottages /?/农场/不管/
这是我的整个重写规则集,因为我认为其中一条重写规则可能会干扰重定向规则。
#redirect /farm/ to /farm_cottages/
RedirectMatch 301 ^/farm/ /farm_cottages/
<IfModule mod_rewrite.c>
RewriteEngine on
# no WWW to WWW
RewriteCond %{HTTP_HOST} !^www.domain.co.uk$ [NC]
RewriteRule ^(.*)$ http://www.domain.co.uk/$1 [R=301,L]
# Force trailing slash on URLs
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ http://www.domain.co.uk/$1/ [L,R=301]
#Remove index.php
RewriteCond $1 !\.(gif|jpe?g|png)$ [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?/$1 [L]
RewriteCond %{THE_REQUEST} ^[^/]*/index\.php [NC]
RewriteRule ^index\.php(.+) $1 [R=301,L]
</IfModule>
该网站是在Expressionengine中构建的,因此网址的细分不代表实际的文件夹 - 我认为这不应该重要。
任何想法都将不胜感激!感谢
答案 0 :(得分:1)
好的,我最终解决了这个问题 - 我希望它可能在将来帮助某人:
RewriteRule ^farm/(.*)$ /farm_cottages/$1 [QSA,R=301,L]