[英]Stuck in a redirect loop from RewriteCond/RewriteRule in .htaccess
[英]Using RewriteCond and RewriteRule to redirect one page
當用戶導航到http://mydomain.nl/nl/my-page/
我需要將用戶重定向到http://mydomain.nl/fnl/my-page/
這是因為我正在使用的網站是一個多商店多語言的Magento網上商店,該商店被我之前的某個人錯誤地配置,因此每種語言都有自己的商店范圍,而不是每個商店都有自己的語言范圍。
我的.htaccess中有以下代碼:
RewriteCond %{HTTP_HOST} ^mydomain\.nl$ [NC]
RewriteRule ^/nl/terms-and-conditions-of-use/ http://mydomain.nl/fnl/terms-and-conditions-of-use/ [NC,QSA,R]
基本上,我假設這樣做是檢查它是否在正確的域(即mydomain.nl)上,然后重定向URL,以便用戶看到正確的頁面。
重定向不起作用。 如果單擊它,它將帶我回到主域的主頁(然后是anotherdomain.nl)
有人可以看一下,看看我在做什么錯嗎?
-編輯-
在adomain.nl上安裝了一個Magento安裝-有多個商店設置了指向它們的不同域。 因此,mydomain.nl在技術上是adomain.nl/mydomain,作為Magento本身的第二個存儲。 我想指出mydomain.nl/nl/對mydomain.nl/fnl/ 什么 取其被請求的頁面 。 在.htaccess中,我需要指定僅希望在mydomain.nl而不是domain.nl上完成此操作
我希望這可以解決問題-這很復雜。
刪除前導斜杠:
RewriteCond %{HTTP_HOST} !^(www\.)?adomain\.nl$ [NC]
RewriteRule ^nl/(terms-and-conditions-of-use)/ /fnl/$1/ [NC,L,R]
或者使其更通用:
RewriteCond %{HTTP_HOST} !^(www\.)?adomain\.nl$ [NC]
RewriteRule ^nl/(.+) /fnl/$1 [NC,L,R]
即使anubhava的回答很相似,這也對我有用:
RewriteCond %{HTTP_HOST} ^domain\.nl$ [NC]
RewriteRule ^nl/terms-and-conditions-of-use/ /fnl/terms-and-conditions-of-use/ [NC,L,R]
只需將訪問http://domain.nl/nl/terms-and-conditions-of-use/的任何人重定向到http://domain.nl/fnl/terms-and-conditions-of-use ,它只會執行此操作當用戶轉到domain.nl時-對於僅使用一個.htaccess文件的Magento多店站點很有用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.