.htaccess RewriteRule для перенаправления всех в root

1819
Jona Koudijs

Я хотел бы перенаправить каждый запрос в root с помощью RewriteRules в моем файле .htaccess (позже я скопирую их в файл vhost). Я попробовал что-то вроде этого:

RewriteRule ^(.*)$ http://test.example.com/ [R=301,L] 

Это работает, но, очевидно, это создает бесконечный цикл. Я думаю, что мне нужен RewriteCond, который исключает корень. Поэтому я попробовал что-то вроде:

RewriteCond % !^/ RewriteRule ^(.*)$ http://test.example.com/ [R=301,L] 

Но, к сожалению, это не похоже на работу. Я искал вокруг некоторое время, но я сталкиваюсь только с RewriteRules, которые удаляют или добавляют косую черту с каждым URL (что мне не нужно). Помощь будет принята с благодарностью.

Я использую Apache2 + mod_rewrite на машине с Linux.

0

1 ответ на вопрос

0
Pierre-Alain TORET

Наверное, это скорее вопрос к ошибке сервера. Корень просто /. Таким образом, вы должны указать, что он начинается с /, ^/а также что он заканчивается сразу после, поэтому вы должны добавить $, ведущий к следующей строке.

RewriteCond % !^/$ 
До, я вижу это сейчас. Спасибо, это сработало! И я думал, что создал его под StackOverflow, мои извинения. Может мод перенести этот вопрос? Jona Koudijs 9 лет назад 0
Пожалуйста. На самом деле это дубликат этого: http://stackoverflow.com/questions/5437375/apache-mod-rewrite-for-everything-except-root Pierre-Alain TORET 9 лет назад 0
Вы совершенно правы, я не нашел этот вопрос в поиске дубликатов. Jona Koudijs 9 лет назад 0
На самом деле, я думаю, что оригинальный пост, который я здесь вставил, не имеет никакого отношения к StackOverflow, все это должно быть на ServerFault, поскольку это часть администрирования сервера. Pierre-Alain TORET 9 лет назад 0

Похожие вопросы