2015-12-05 1 views
1

Я перенаправляю все non-www в www.Путь папки отбрасывается при перенаправлении с помощью htaccess

Он отлично работает для всех ссылок, если нет ссылки, содержащей папку в нашем корневом каталоге, например /us/ или /uk/.

Это мое правило:

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

Если я использую такие инструменты, как этот: http://htaccess.madewithlove.be/ это показывает, что редирект работает отлично: http://example.com/uk/ перенаправляет http://www.example.com/uk/

Но в действительности он перенаправляет на http://www.example.com/ , Я удалил каждый кеш и лак, а также использовал следующие инструменты: http://www.redirect-checker.org/index.php и cURL.

Путь к папке отбрасывается. http://example.com/uk/whatever будет http://www.example.com/whatever

Что еще это может быть?

Я также ввел мои переадресации в файл .htaccess внутри папки/uk /.

Спасибо!

+0

Есть ли у вас какие-либо другие RewriteRules? – starkeen

+0

@Starkeen no, никаких других правил перезаписи. возможно ли, что htaccess из/uk/folder не учитывается? –

ответ

1

Я вставлял свои переадресации также в файл .htaccess внутри папки/uk/ .

Вы не можете этого сделать. Это просто дает неверный результат.

Используйте ваши или это HTAccess в корне:

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

Вы можете попробовать использовать это правило перезаписи вместо:

RewriteCond %{HTTP_HOST} ^([a-z.]+)?yoursite\.com$ [NC] 
RewriteCond %{HTTP_HOST} !^www\. [NC] 
RewriteRule .? http://www.%yoursite.com%{REQUEST_URI} [R=301,L] 
Смежные вопросы