2017-02-21 2 views
1

У меня есть припаркованный домен http://example2.com, который находится на платформе хостинга http://example.com..htaccess основной домен в подпапку, но/подпапка по-прежнему доступна

Проблема в том, что если я перехожу на http://example2.com/example2/fr, я не перенаправляюсь на http://example2.com/fr, и я пробовал решения, но продолжаю иметь цикл перенаправления.

В папке public_html, есть подпапка/example2 с файлами для http://example2.com

> public_html 
    - .htaccess 
    - index.php 
    > assets 
    > css 
    > js 
    > example2 
    - .htaccess 
    - index.html 
    > fr 
     - index.html 
    > en 
     - index.html 

Теперь в папке public_html, мое правило редиректа в моем файле .htaccess является:

<IfModule mod_rewrite.c> 
    RewriteEngine on 

    # Redirect the example2 to the subfolder /example2 
    RewriteCond %{HTTP_HOST} ^(www\.)?example2\.com$ [NC] 
    RewriteRule !^example2/ /example2%{REQUEST_URI} [L,NC] 
</IfModule> 

В папке/example2, мой файл Htaccess перенаправляет как это:

<IfModule mod_rewrite.c> 
    RewriteEngine On 
    RewriteCond %{HTTP_HOST} !^www\. 
    RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L] 

    RewriteRule ^index\.html$/[R=301,L] 
    RewriteRule ^(.*)/index\.html$ /$1 [R=301,L] 

    #RewriteRule ^(.*)$ /$1 [R=301,L] 
</IfModule> 
+0

Что произойдет, если вы удалите /subfolder/.htaccess? – starkeen

ответ

1

Ваш /example2/.htaccess должен быть таким:

RewriteEngine On 

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

RewriteRule ^index\.html$/[R=301,NC,L] 

RewriteRule ^(.*)/index\.html$ /$1 [R=301,NC,L] 

# remove /example2/ from URLs 
RewriteCond %{THE_REQUEST} \s/+example2(/\S*)\s [NC] 
RewriteRule^%1? [R=301,L,NE] 
+1

Большое спасибо. Работает как шарм :) – ReBa

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