将domain.com/shop重定向至www.domain.com/shop


Redirect domain.com/shop to www.domain.com/shop

注意:在将其标记为重复之前,请阅读完整的问题。我已经应用了以下建议,但对我不起作用。

1-mod从.domain重写到www.domain htaccess

2-.htaccess重定向自http://www.domain/到https://domain.com

3-.htaccess将任何域/目录重定向到www.domain/directory

我们有一个购物网站,我们正在主机上托管(CloudLogin)。主网站是建立在Joomla CMS和Magento作为购物车。

主站点URL为www.domain.com,购物车URL为domain.com/shop(无www)。

我们需要的是用(www)显示这两个URL。

所以我们需要Magento文件夹ie domain.com/shop也在www URL上。

我找到了一些关于堆栈溢出的解决方案,但它们对我不起作用,因为它总是显示消息浏览器(重定向过多或/页面重定向不正确)

注意:.htaccess文件位于(商店)文件夹中。

Bellow是我迄今为止尝试过的:

1-

# anything.com to www.anything.com
RewriteCond %{HTTP_HOST} ^[^.]+('.[^.]+)?$ [NC]
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [L,R=301,NE] 

上面的代码从URL中删除了(商店)目录,这会变成错误。

例如:domain.com/shop/cat1/prod1转换为www.domain.com/cat1/prod1

2-

RewriteCond %{REQUEST_URI} !^/shop/?.*$
RewriteRule ^(.*)$ http://www.domain.com/$1 [R=301,L]

上面的代码甚至没有在上面应用www。

3-

RewriteCond %{HTTP_HOST} ^[^.]+'.[^.]+$
RewriteCond %{HTTPS}s ^on(s)|
RewriteRule ^ http%1://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

以上代码从domain.com/shop/cat1/prod1重定向到www.domain.com/shop,并显示错误消息(重定向次数过多)这似乎是页面上的无限循环。

4-

RewriteCond %{HTTP_HOST} ^domain.com$ [NC]
RewriteRule ^(.*) http://www.domain.com/shop/$1 [L,R=301] 

这与3的作用相同。

5-

#RewriteCond ${HTTP_HOST} doamin.com [OR]
#RewriteCond ${HTTP_HOST} www.doamin.com
#RewriteRule ^(.*)$ http://www.doamin.com/shop/$1 [QSA,R=301,L]

有人知道我如何在特定的URL中强制正确使用.htaccess吗?

我到处看了看,所以找不到合适的答案。

尝试:

RewriteEngine on
RewriteCond %{REQUEST_URI} !^/shop
RewriteCond www.%{HTTP_HOST} ^(?:www'.)?(www'..+)$ [NC]
RewriteRule ^ http://%1/shop%{REQUEST_URI} [NE,L,R]

您尝试过以下操作吗?

# anything.com to www.anything.com
RewriteCond %{HTTP_HOST} ^[^.]+('.[^.]+)?$ [NC]
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/shop/$1 [L,R=301,NE]

由于请求源自/shop目录,因此请求的URL中不会包含该目录。