2016-08-08 4 views
0

У меня есть два веб-сайта - я сделал файл htaccess одинаковым для обоих из них (у каждого есть разные ссылки, конечно). Они такие же. Моя цель - перенаправить с не www на www. Теперь он работает для первого веб-сайта. Для второго он работает тоже, но только по/index, остальные страницы не перенаправляются. Любая идея, что может быть проблемой? Я считаю, что в htaccess нет ошибки, поскольку я проверил ее, и они должны быть абсолютно одинаковыми.перенаправление с не www на www

Файлы - это работает для AAA, не для BBB. Htaccess код ниже:

AAA SITE: 



RewriteEngine On 
RewriteCond %{REQUEST_URI} !^domains/ 
RewriteCond %{REQUEST_URI} !^/domains/ 
RewriteCond %{HTTP_HOST} ^(www\.)?(.*)$ 
RewriteCond %{DOCUMENT_ROOT}/domains/%2 -d 
RewriteRule (.*) domains/%2/$1 [DPI] 


RewriteCond %{REQUEST_URI} !^subdom/ 
RewriteCond %{REQUEST_URI} !^/subdom/ 
RewriteCond %{HTTP_HOST} ^(www\.)?(.*)\.([^\.]*)\.([^\.]*)$ 
RewriteCond %{DOCUMENT_ROOT}/subdom/%2 -d 
RewriteRule (.*) subdom/%2/$1 [DPI] 

DirectoryIndex index.html 


RewriteCond %{REQUEST_FILENAME} -d 
RewriteRule ^domains/[^/]+/(.+[^/])$ /$1/ [R] 


RewriteCond %{REQUEST_FILENAME} -d 
RewriteRule ^subdom/[^/]+/(.+[^/])$ /$1/ [R] 

RewriteRule ^([^\.]+)$ $1.html [NC,L] 


RewriteEngine On 
RewriteBase/

## hide .html extension 
# To externally redirect /dir/foo.html to /dir/foo 
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.html [NC] 
RewriteRule^%1 [R,L,NC] 

## To internally redirect /dir/foo to /dir/foo.html 
RewriteCond %{REQUEST_FILENAME}.html -f 
RewriteRule^%{REQUEST_URI}.html [L] 
RewriteCond %{REQUEST_FILENAME} !-f 

RewriteEngine On 
RewriteCond %{HTTP_HOST} ^aaa\.net 
RewriteRule (.*) https://www.aaa.net/$1 [R=301,QSA,L] 

RewriteEngine On 
RewriteCond %{HTTPS} !on 
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} 

ErrorDocument 404 https://www.aaa.net/404page 

<IfModule mod_expires.c> 
ExpiresActive On 
ExpiresDefault A600 
ExpiresByType text/javascript A604800 
ExpiresByType application/javascript A604800 
ExpiresByType text/css A604800 
ExpiresByType image/gif A604800 
ExpiresByType image/png A604800 
ExpiresByType image/jpeg A604800 
ExpiresByType image/x-icon A604800 
ExpiresByType text/html A60 
</IfModule> 

<ifModule mod_gzip.c> 
mod_gzip_on Yes 
mod_gzip_dechunk Yes 
mod_gzip_item_include file .(html?|txt|css|js|php|pl)$ 
mod_gzip_item_include handler ^cgi-script$ 
mod_gzip_item_include mime ^text/.* 
mod_gzip_item_include mime ^application/x-javascript.* 
mod_gzip_item_exclude mime ^image/.* 
mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.* 
</ifModule> 




BBB SITE: 
RewriteEngine On 
RewriteCond %{REQUEST_URI} !^domains/ 
RewriteCond %{REQUEST_URI} !^/domains/ 
RewriteCond %{HTTP_HOST} ^(www\.)?(.*)$ 
RewriteCond %{DOCUMENT_ROOT}/domains/%2 -d 
RewriteRule (.*) domains/%2/$1 [DPI] 


RewriteCond %{REQUEST_URI} !^subdom/ 
RewriteCond %{REQUEST_URI} !^/subdom/ 
RewriteCond %{HTTP_HOST} ^(www\.)?(.*)\.([^\.]*)\.([^\.]*)$ 
RewriteCond %{DOCUMENT_ROOT}/subdom/%2 -d 
RewriteRule (.*) subdom/%2/$1 [DPI] 

DirectoryIndex index.html 


RewriteCond %{REQUEST_FILENAME} -d 
RewriteRule ^domains/[^/]+/(.+[^/])$ /$1/ [R] 


RewriteCond %{REQUEST_FILENAME} -d 
RewriteRule ^subdom/[^/]+/(.+[^/])$ /$1/ [R] 

RewriteRule ^([^\.]+)$ $1.html [NC,L] 

# Turn mod_rewrite on 
RewriteEngine On 
RewriteBase/

## hide .html extension 
# To externally redirect /dir/foo.html to /dir/foo 
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.html [NC] 
RewriteRule^%1 [R,L,NC] 

## To internally redirect /dir/foo to /dir/foo.html 
RewriteCond %{REQUEST_FILENAME}.html -f 
RewriteRule^%{REQUEST_URI}.html [L] 
RewriteCond %{REQUEST_FILENAME} !-f 


RewriteEngine on 
RewriteCond %{HTTP_HOST} ^bbb\.net 
RewriteRule (.*) https://www.bbb.net/$1 [R=301,QSA,L] 


RewriteEngine On 
RewriteCond %{HTTPS} !on 
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} 

ErrorDocument 404 https://www.bbb.net/404page 

<IfModule mod_expires.c> 
ExpiresActive On 
ExpiresDefault A600 
ExpiresByType text/javascript A604800 
ExpiresByType application/javascript A604800 
ExpiresByType text/css A604800 
ExpiresByType image/gif A604800 
ExpiresByType image/png A604800 
ExpiresByType image/jpeg A604800 
ExpiresByType image/x-icon A604800 
ExpiresByType text/html A60 
</IfModule> 

<ifModule mod_gzip.c> 
mod_gzip_on Yes 
mod_gzip_dechunk Yes 
mod_gzip_item_include file .(html?|txt|css|js|php|pl)$ 
mod_gzip_item_include handler ^cgi-script$ 
mod_gzip_item_include mime ^text/.* 
mod_gzip_item_include mime ^application/x-javascript.* 
mod_gzip_item_exclude mime ^image/.* 
mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.* 
</ifModule> 
+0

Что вы имеете в виду, что не дает вам? Вставьте код в кодовый блок –

+0

по крайней мере некоторые строки из htaccess, связанные с ним. Первый AAA работает, второй BBB не RewriteEngine On RewriteCond% {HTTP_HOST}^aaa \ .net RewriteRule (. *) Https://www.aaa.net/$1 [R = 301, QSA, L] RewriteEngine на RewriteCond% {HTTPS} на RewriteRule (. *) по протоколу HTTPS: //% {HTTP_HOST}% {REQUEST_URI} RewriteEngine на RewriteCond% {HTTP_HOST}^ГЭБ \ .net (. *) RewriteRule https://www.bbb.net/$1 [R = 301, QSA, L] RewriteEngine на RewriteCond% {HTTPS} на RewriteRule HTTPS! (*.): //% { HTTP_HOST}% {REQUEST_URI} –

+0

он говорит, что у меня нет репутации для отправки более 2 ссылок. –

ответ

0

Для обоих сайтов (AAA & BBB), используйте следующее:

RewriteEngine On 
RewriteCond %{HTTP_HOST} ^(?!www\.) [NC] 
RewriteRule^http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L] 

Это переводится как:

+0

Я пробовал, однако я не уверен, что это окончательный код, который я должен ввести? Должен ли я добавить AAA или BBB? Что я должен заменить этим? В основном, что я пробовал с этим, он сказал, что сайт не может быть загружен из-за слишком большого количества перенаправлений. –

+0

Приношу свои извинения. Условие перезаписи, которое я написал, было слишком велико. Я изменил его. Он должен работать сейчас, поэтому, пожалуйста, проверьте его снова. – Rounin