通过htaccess将文件夹重定向到另一个域

时间:2015-08-28 12:02:47

标签: .htaccess redirect opencart

HeJ小鼠,

首先要做的事情是:我找到了两个相似的帖子,但这些解决方案并不适用于我。所以这是问题:

我有一个OpenCart多线程安装。因此,我在2个不同的域上运行2个商店(一个用德语,一个用英语),文件在一个文件夹(Web服务器)中。在将德国商店分离到自己的域名之前,我在商店的德语版本中存放了一个子商店,例如shop1.com/de/xxxx。

所以现在我需要一个htaccess重定向,将所有德语网址转发到新域名,例如:

english-shop.com/de/page1 - > german-shop.de/page1

# Prevent Directoy listing 
Options -Indexes

# Prevent Direct Access to files
<FilesMatch "\.(tpl|ini|log)">
 Order deny,allow
 Deny from all
</FilesMatch>

RewriteEngine On
RewriteBase /

# append WWW
RewriteCond %{HTTP_HOST} !^www.
RewriteCond %{HTTP_HOST} !^$ [NC]
RewriteRule ^(.*) https://www.%{HTTP_HOST}/$1 [R,L=301]

# delete trailing slash
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)/$ /$1 [R=301,L]

# Force SSL
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]
RewriteCond %{HTTPS} !=off

# OpenCart SEO URL Settings
RewriteRule ^sitemap.xml$ index.php?route=feed/google_sitemap [L]
RewriteRule ^googlebase.xml$ index.php?route=feed/google_base [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !.*\.(ico|gif|jpg|jpeg|png|js|css)
#RewriteRule ^([^?]*) index.php?_route_=$1 [L,QSA]
RewriteRule ^(?:(?:(\w{2})(?:/|\z))?(?:/|\z)?)?(?:([^?]*))? index.php?_route_=$2&site_language=$1 [L,QSA]

如果有人可以帮我解决这个问题真的很棒。我确实发现并尝试了几种解决方案但没有任何效果谷歌真的很讨厌我:(

谢谢&amp;最好, 德克

1 个答案:

答案 0 :(得分:1)

RewriteCond %{HTTP_HOST} !german-shop.de
RewriteRule ^de/(.*) http://german-shop.de/$1 [R,L=301]

当调用german-shop.de/de/时,第一行会阻止重定向循环。第二行在/ de /之后获取部分并将其放在german-shop.de之后。

注意:在你的.htaccess中你做了一些预先添加www的东西。并执行https。也许你需要调整我的线条以防止额外的重定向。