У меня проблема с файлом .htaccess. Все работало отлично, пока я не сделал некоторые изменения (добавлены обработки нескольких языков):Страница не перенаправляется правильно - .htaccess проблема с файлом
До:
RewriteEngine On
RewriteBase/
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
RewriteRule ^(index.html)$ http://my-site.pl/ [R=301,L]
То, что я добавил в конце файла:
RewriteCond %{HTTP:Accept-Language} (pl) [NC]
RewriteRule .* index.html [R,L]
RewriteCond %{HTTP:Accept-Language} (en) [NC]
RewriteRule .* index.en.html [R,L]
RewriteCond %{HTTP:Accept-Language} (jp) [NC]
RewriteRule .* index.jp.html [R,L]
Я хочу перенаправить все страны на свои страницы, меняя только (..) на моей странице url: http://my-site.pl/index.(..).html, как в приведенном выше коде.
Я не могу найти, где проблема.
Ошибка из браузера Firefox:
страница не перенаправлять правильно. Firefox обнаружил, что сервер перенаправляет запрос для этого адреса таким образом, который никогда не будет завершен.
EDIT: После изменения (по-прежнему не работает) полный .htaccess:
RewriteEngine On
RewriteBase/
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule^http://%1%{REQUEST_URI} [R=301,L,NE]
RewriteCond %{THE_REQUEST} /index\.html [NC]
RewriteRule ^index\.html$/[R=301,L,NC]
RewriteCond %{HTTP:Accept-Language} pl [NC]
RewriteRule ^(?!index\.html$).+$/[NC,R,L]
RewriteCond %{HTTP:Accept-Language} en [NC]
RewriteRule ^/?$ index.en.html [R,L]
RewriteCond %{HTTP:Accept-Language} jp [NC]
RewriteRule ^/?$ index.jp.html [R,L]
ErrorDocument 404 /404.html
## EXPIRES CACHING ##
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/jpg "access 1 year"
ExpiresByType image/jpeg "access 1 year"
ExpiresByType image/gif "access 1 year"
ExpiresByType image/png "access 1 year"
ExpiresByType text/css "access 1 month"
ExpiresByType text/html "access 1 month"
ExpiresByType application/pdf "access 1 month"
ExpiresByType text/x-javascript "access 1 month"
ExpiresByType application/x-shockwave-flash "access 1 month"
ExpiresByType image/x-icon "access 1 year"
ExpiresDefault "access 1 month"
</IfModule>
## EXPIRES CACHING ##
<IfModule mod_deflate.c>
# Compress HTML, CSS, JavaScript, Text, XML and fonts
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/vnd.ms-fontobject
AddOutputFilterByType DEFLATE application/x-font
AddOutputFilterByType DEFLATE application/x-font-opentype
AddOutputFilterByType DEFLATE application/x-font-otf
AddOutputFilterByType DEFLATE application/x-font-truetype
AddOutputFilterByType DEFLATE application/x-font-ttf
AddOutputFilterByType DEFLATE application/x-javascript
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE font/opentype
AddOutputFilterByType DEFLATE font/otf
AddOutputFilterByType DEFLATE font/ttf
AddOutputFilterByType DEFLATE image/svg+xml
AddOutputFilterByType DEFLATE image/x-icon
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/javascript
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/xml
# Remove browser bugs (only needed for really old browsers)
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
Header append Vary User-Agent
</IfModule>
К сожалению, все еще не работает ... такая же ошибка ... каждый раз, когда очищенный кеш очищается – Krzysiek
по-прежнему та же ошибка видна. проверен на firefox и в Internet Explorer на мобильном телефоне – Krzysiek
Это что-то не так с правилом перенаправления pl. Без этого все работает, но, к сожалению, все страницы перенаправляются на ru. – Krzysiek