Перенаправление .htaccess / https, доступ к виртуальной папке с исключениями - PullRequest
0 голосов
/ 01 ноября 2009

/ * Это может показаться дубликатом другого вопроса, который я задал 10 дней назад ( .htaccess / перенаправление на https://www.example.com и доступ к виртуальной папке ), но (а) я не получил никакого ответы на изменения, которые я внес в вопрос, и (б) этот вопрос здесь представляет собой более сложную версию вышеупомянутого, и я считаю, что требуется новый запрос * /

У меня есть сайт, на котором есть следующие объекты: example.com/index.html example.com/main.php example.com/SPECIAL/main.php кроме вышеизложенного, у меня есть папки, такие как example.com/images/, / css / и т. д., на которые указывают html, сгенерированные сценариями.

Мне нужна магия .htaccess для ВСЕХ ниже:

(а) постоянное перенаправление пользователей с «example.com» на «www.example.com» (301 материал)

(б) постоянное перенаправление пользователей с http://www.example.com на https://www.example.com (301 шт.)

(c) пользователи, обращающиеся к example.com/, должны, конечно, видеть index.html, но если они набирают
example.com/ABCDEF ИЛИ
example.com/ABCDEF/
, они должны перенаправляется на example.com/main.php?folder=ABCDEF
ЗА ИСКЛЮЧЕНИЕМ, когда ABCDEF является реальной папкой (например, / SPECIAL /, / images /, / css / и т. д.)

(d) Если пользователь пытается получить доступ к example.com/REALFOLDER/ (например, / images /), его следует просто перенаправить на example.com/

(e) Все это не должно мешать просмотру example.com/index.html

Извините, если это звучит сложно, но это именно то, что мне нужно!

S

1 Ответ

0 голосов
/ 05 ноября 2009

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

# (a) and (b)
RewriteCond %{HTTP_HOST} =example.com [OR]
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://www.example.com%{REQUEST_URI} [L,R=301]
# (d)
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule . / [L,R]
# (c)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/?$ main.php?folder=$1 [L]
...