.htaccess替换单词并重定向
我需要重定向.htaccess替换单词并重定向,.htaccess,redirect,replace,.htaccess,Redirect,Replace,我需要重定向http://example.com/view-abc-def.html至http://example.com/view/abc-def.html。为了做到这一点,我使用 RewriteRule ^(.*)view-(.*)$ /$1view/$2 [R=301,L] 在URL中没有出现其他出现的视图-之前,此功能将一直正常工作。但不幸的是,如果URL类似于http://example.com/view-abc-view-def.html它将以404结尾 所以我试过了 Rewrit
http://example.com/view-abc-def.html
至http://example.com/view/abc-def.html
。为了做到这一点,我使用
RewriteRule ^(.*)view-(.*)$ /$1view/$2 [R=301,L]
在URL中没有出现其他出现的视图-之前,此功能将一直正常工作。但不幸的是,如果URL类似于http://example.com/view-abc-view-def.html
它将以404结尾
所以我试过了
RewriteRule ^(.*)/view-(.*)$ /$1view/$2 [R=301,L]
但在这种情况下,它不会改变URL中的任何内容。我做错了什么?使用以下规则更改现有规则:
RewriteRule (^|.*?/)view-(.*)$ /$1view/$2 [R=302,L,NC]
一旦您验证它是否正常工作,就从
R=302
更改为R=301
。您可以首先消除所有内部-view-
并执行实际重定向
RewriteRule ^(.*)-view-(.*)$ $1-$2 [L]
RewriteRule ^(.*)/view-(.*)$ /$1/view/$2 [R,L]
当一切正常时,您可以将R
更改为R=301
切勿在启用301
的情况下进行测试,请参阅此答案
详情请参阅