2015-08-03 2 views
0

Я настраиваю то, что, по моему мнению, было бы довольно простым набором правил переадресации с использованием htaccess.Застревает в петле перенаправления .htaccess

Я настроил перенаправление, чтобы корневой домен перешел в подкаталог Великобритании. Например:

http://example.com 

идет в:

http://example.com/uk 

Я теперь пытающегося то же самое, но на этот раз, но для отдельных HTML-файлов. Смотрите ниже:

http://example.com/index.html 
http://example.com/main.html 

Они должны идти к своим коллегам в Великобритании:

http://example.com/uk/ 
http://example.com/uk/main.html 

Я index.html работать и перенаправлять красиво, но делать подобную вещь на main.html представляет цикл перенаправления и я почему бы и нет. Для перенаправления main.html я начинаю с каретки (^), поэтому это должно соответствовать только если main.html следует за доменом напрямую.

Это мой файл .htaccess:

php_value memory_limit 256M 

## apc interferes with the autoloader 
php_flag apc.cache_by_default Off 

Options +FollowSymLinks 

#Turn on the RewriteEngine 
RewriteEngine On 
RewriteBase/

RewriteRule ^index.html /uk/ [R=302,NC,L] 

RedirectMatch 301 ^/$ /uk/ 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_URI} /([^/]+)/?$ [NC] 
RewriteRule ^main.html /uk/main.html [R=301,QSA,L] 
RewriteRule (.*)\.html index.php?key=$1 [QSA,L] 

AddType video/mp4 .mp4 .m4v 
AddType video/ogg .ogv 
AddType video/webm .webm 

Я пробовал многочисленные комбинации, не повезло. Может кто-нибудь помочь мне здесь?

ответ

0

Вы на самом деле нужно только одно правило в корневом .htaccess для этого с помощью регулярных выражений чередованием:

AddType video/mp4 .mp4 .m4v 
AddType video/ogg .ogv 
AddType video/webm .webm 

RewriteEngine On 

RewriteRule ^((?:index|main)\.html)?$ /uk/$1 [R=302,NC,L] 

испытания после очистки кэша браузера.

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