我需要寫兩個重定向:
- 從
https://site.ru/dveri到https://anothersite.ru/dveri-iz-dereva/ - 從
https://site.ru/dveri?start=14到https://anothersite.ru/blog/
我在htaccess中寫了兩條規則:
#1
RewriteCond %{THE_REQUEST} \s/ dveri[?\s/] [NC]
RewriteRule ^ https://anothersite.ru/dveri-iz-dereva/ [L,R=301]
#2
RewriteCond %{THE_REQUEST} \s/ dveri[?\s/] [NC]
RewriteRule ^.*$ https://anothersite.ru/blog/? [L,R=301]
結果:
鏈接https://site.ru/dveri正確重定向到https://anothersite.ru/dveri-iz-dereva/
鏈接https://site.ru/dveri?start=14錯誤地重定向到https://anothersite.ru/dveri-iz-dereva/?start=14
uj5u.com熱心網友回復:
你寫的兩條規則是一樣的。第二次試試這個
RewriteCond %{THE_REQUEST} /dveri\?start=14$
RewriteRule ^ https://anothersite.ru/blog/? [L,R=301]
uj5u.com熱心網友回復:
我有經驗的同事幫我解決了這個問題:
RewriteCond %{THE_REQUEST} \s/ dveri[?\s/] [NC]
RewriteCond %{QUERY_STRING} ^start=14$
RewriteRule ^.*$ https://anothersite.ru/blog/? [L,R=301]
RewriteCond %{THE_REQUEST} \s/ dveri[?\s/] [NC]
RewriteRule ^ https://anothersite.ru/dveri-iz-dereva/ [L,R=301]
uj5u.com熱心網友回復:
RewriteCond %{THE_REQUEST} \s/ dveri[?\s/] [NC] RewriteCond %{QUERY_STRING} ^start=14$ RewriteRule ^.*$ https://anothersite.ru/blog/? [L,R=301] RewriteCond %{THE_REQUEST} \s/ dveri[?\s/] [NC] RewriteRule ^ https://anothersite.ru/dveri-iz-dereva/ [L,R=301]
如果這些指令放在根.htaccess檔案的頂部,那么它們可以簡化為:
RewriteCond %{QUERY_STRING} ^start=14$
RewriteRule ^dveri/?$ https://anothersite.ru/blog/ [NC,QSD,R=301,L]
RewriteRule ^dveri/?$ https://anothersite.ru/dveri-iz-dereva/ [NC,R=301,L]
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/316579.html
下一篇:htaccess重定向負前瞻
