.htaccess/перенаправление на https://www.example.com и доступ к виртуальной папке

У меня есть домен example.com. Я хочу, чтобы пользователи перенаправлялись на https://www.example.com при вводе одного из следующих символов:

  • http://example.com
  • http://www.example.com
  • https://example.com

Мне также нужно перенаправить людей, имеющих доступ к /asdf (или /asdf/), на /index.php?folder=asdf.

Я нашел несколько примеров кода, выполняющего первую часть, но всегда были споры об их эффективности.


Изменить: (нужна дополнительная помощь! :))


person Steve    schedule 21.10.2009    source источник
comment
Хм - я думаю, что должен был опубликовать свой запрос на добавление сюда... :) [это ниже в ответ на Gumbo]   -  person Steve    schedule 29.10.2009


Ответы (1)


Попробуйте эти правила mod_rewrite:

RewriteEngine on

RewriteCond %{HTTP_HOST} !=www.example.com [OR]
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://www.example.com%{REQUEST_URI} [L,R=301]

RewriteCond $1 !=index.php
RewriteRule ^([^/]+)/?$ index.php?folder=$1 [L]

Но я рекомендую вам разрешить только одно обозначение URL, с косой чертой или без косой черты.

person Gumbo    schedule 21.10.2009
comment
Привет, Гамбо. Первая часть работает довольно хорошо, но для второй части мне нужна дополнительная помощь. Я хочу, чтобы все пользователи, обращающиеся к www.example.com, имели доступ к файлу index.html, но любой доступ к example.com/abcde/ должен быть перенаправлен на example.com/subfolder=abcde. Еще одна сложность заключается в том, что у меня есть специальная (но настоящая) папка по адресу: www.example.com/qwerty/. Любые ссылки внутри них не должны быть изменены. Спасибо! Ваш предыдущий пример был очень полезным! - person Steve; 29.10.2009
comment
Упс - небольшая опечатка: я хотел сказать, что любой, кто обращается к example.com/abcde/, будет перенаправлен на example.com/other.php?subfolder=abcde - person Steve; 29.10.2009