Я хочу перенаправить все запросы на http://domain.com на http://www.domain.com,, поэтому я использую следующий .htaccess, расположенный в корне моего сайта:
RewriteEngine On RewriteCond %{HTTP_HOST} ^domain\.com RewriteRule ^(.*)$ http://www.domain.com/$1 [R=permanent,L]
Это работает очень хорошо, за исключением подпапок, где я делаю переписывание URL:
RewriteEngine on RewriteBase /articles/ RewriteRule ^(.+)$ index.php [L]
На самом деле ничего не произойдет, если я введу URL: http://domain.com/articles/article.html Ожидаемое поведение будет перенаправление на http://www.domain.com/articles/article.html
Каков наилучший способ достижения результата?
Спасибо
Вам необходимо использовать директиву RewriteOptions , чтобы указать Apache использовать .htaccess из родительской папки после завершения обработки правил из локального .htaccess:
RewriteOptions inherit
Но родительские правила будут обрабатываться ПОСЛЕ локального ... что вам может не понравиться (в результате URL может выглядеть как http://www.domain.com/articles/index.php, который будет виден в адресной строке).
http://www.domain.com/articles/index.php
В идеале вы хотите переместить все в один .htaccess - если можете.
Я бы подумал, что это должно работать, если у вас есть это в подпапке:
RewriteBase /articles/ RewriteCond %{http_host} ^website\.com [nc] RewriteRule ^(.*)$ http://www.website.com/articles/$1 [R=301,NC]