2015-06-11 2 views
0

У меня есть многопользовательская установка OpenCart, поэтому у меня есть несколько доменов, указывающих на одну и ту же папку сервера. В этой папке у меня есть файл .htaccess, который я могу получить только для одного из доменов (в данном случае: city-gardener.com).Использование одного файла .htaccess в корне для нескольких доменов

Вот код:

# 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_URI} (.*)$ 
RewriteRule ^(.+)/$ https://www.city-gardener.com/$1 [R,L=301] 

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

# 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] 

Как бы я должен изменить это так, что он работает для других доменов так же? Я знаю, мне почему-то нужно заменить жесткий код с чем-то вроде {HTTP_HOST}, но у меня всегда есть несколько www. s в моем URL-адресе или подобных ошибках. Было бы здорово, если бы кто-то мог помочь!

+0

Каковы примеры URL-адреса для этого он не работает? – anubhava

+0

Один домен является доменом city-gardener.com, а другой является .de-Domain (diestadtgaertner.de) –

ответ

0

Вы установили неверные флаги: [R,L=301], а не [R=301,L], ваш URL был переписан несколько раз, и у вас есть несколько www.

Чтобы избавиться от явно указанных доменных имен, изменять свои правила, как этот

# 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] 
+0

Привет, спасибо за ответ. Тем не менее, это не работает с этим. Проблема в том, что я не знаю, как адаптировать htaccess, чтобы избавиться от имени домена, которое в настоящее время включено. –

+0

Я отредактировал ответ – umka

+0

Привет, umka, отлично благодарю вас. Это отлично работает! –

Смежные вопросы