Моя дилемма:
В .htaccess в корне моего сайта:
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.example\.com [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L]
В .htaccess в подкаталоге / foo
RewriteEngine On
RewriteRule ^page1\.html$ /foo/page2.html [R=301]
Во-первых, я стараюсь, чтобы все запросы включали начало www.
Во-вторых, я перенаправляю запросы на page1.html в подкаталог foo на page2.html, также в этом подкаталоге.
В моем браузере пытаюсь зайти:
http://www.example.com/foo/page2.html <== работает, хорошо </p>
http://www.example.com/foo/page1.html <== перенаправляет на <a href="http://www.example.com/foo/page2.html" rel="nofollow noreferrer">http://www.example.com/foo/page2.html, хорошо
http://example.com/foo/page1.html <== перенаправляет на <a href="http://www.example.com/foo/page2.html" rel="nofollow noreferrer">http://www.example.com/foo/page2.html, хорошо
http://example.com/foo/page2.html <== перенаправление не происходит, плохо </strong>
==> Следует перенаправить на: http://**www.**example.com/foo/page2.html
В результате экспериментов может показаться, что правила перенаправления в файле .htaccess в корне веб-сайта вступают в силу только для запросов на страницы в этом подкаталоге ЕСЛИ тот подкаталог не содержит файл .htaccess или выполняет и указывает правило перезаписи, которое вступает в силу для этого конкретного запроса.
Кто-нибудь может увидеть, что я делаю неправильно? Как я могу получить правило перезаписи, которое придерживается www. в случае, если не хватает для стрельбы по http://example.com/foo/page2.html?
Спасибо, хоп, это сработало!
Для записи мне пришлось изменить правило перезаписи в файле в корне сайта на:
RewriteRule ^.*$ http://www.example.com%{REQUEST_URI} [R=301,L]
Что просто отлично. Спасибо!