我要問的是非常基本的,我認為它應該可以作業,但我不知道為什么它不作業。
基本上,我需要將這些 url(1) 到 301 重定向到這些其他 (2)
- (1)
/es/madrid/=> (2)/es/madrid-es/ - (1)
/es/ibiza/=> (2)/es/ibiza-es/
這是我的方法:
RewriteRule ^/es/madrid/ https://example.com/es/madrid-es/ [R=301,L]
RewriteRule ^/es/ibiza/ https://example.com/es/ibiza-es/ [R=301,L]
uj5u.com熱心網友回復:
RewriteRule ^/es/madrid/ https://example.com/es/madrid-es/ [R=301,L] RewriteRule ^/es/ibiza/ https://example.com/es/ibiza-es/ [R=301,L]
在檔案中,模式.htaccess匹配的 URL 路徑不以斜杠開頭。所以上面的指令永遠不會匹配請求的 URL,所以不會做任何事情。RewriteRule
換句話說,改為這樣做:
RewriteRule ^es/madrid/ https://example.com/es/madrid-es/ [R=301,L]
RewriteRule ^es/ibiza/ https://example.com/es/ibiza-es/ [R=301,L]
請注意,這些規則重定向/es/madrid/<anything>- 這是意圖嗎?否則,要匹配確切的 URL 路徑,然后才包含一個字串結尾的錨點。例如。^es/madrid/$.
但是,您可以將這兩個規則結合起來。例如:
RewriteRule ^(es)/(madrid|ibiza)/ https://example.com/$1/$2-$1/ [R=301,L]
其中$1和$2反向參考對應于前面RewriteRule 模式中捕獲的組(帶括號的子模式) 。
旁白:對于任何兩個字符的語言代碼和位置,您可以更進一步,您可以執行以下操作:
RewriteRule ^([a-z]{2})/(\w )/ https://example.com/$1/$2-$1/ [R=301,L]
這將重定向/<lang>/<place>/<anything>到任何兩個字符語言代碼的/<lang>/<place>-<lang>/位置。<lang>
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/449236.html
標籤:.htaccess 改写 url重写 url 重写模块
