Как сохранить отображение URL без изменений после перенаправления корневой папки в подпапку - PullRequest
0 голосов
/ 17 января 2010

Я хочу перенаправить все запросы на mydomain.com на mydomain.com/live/. Я уже могу это сделать, однако у меня проблемы с отображаемым в браузере URL. У меня есть две цели: (1) чтобы URL всегда отображался с «www» впереди и (2) чтобы подпапка «live» не отображалась в URL.

РЕДАКТИРОВАТЬ: На основе отредактированного кода Cryo следующие цели достигают моих целей, а также добавляют косую черту после всех подпапок, так что при вводе папки в URL она правильно перенаправляется в index.html внутри нее:

RewriteCond %{HTTP_HOST} !^www\.domain\.com$
RewriteRule ^(.*)$ http://www.domain.com/$1 [R=301,L]
RewriteRule ^$ /index.html

RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !\..+$
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ http://www.domain.com/$1/ [L,R=301]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/live/
RewriteRule ^(.*)$ /live/$1

Вопрос, однако, при добавлении косой черты в подпапки я предполагал, что RewriteCond% {REQUEST_FILENAME}! -F сделает так, чтобы косая черта не добавлялась после имен файлов (только папок), поэтому /subfolder/page.html нет косой черты (это то, что я хочу). Однако RewriteCond% {REQUEST_FILENAME}! -F, похоже, ничего не делает, и требуется RewriteCond% {REQUEST_URI}! .. + $.

Ответы [ 2 ]

1 голос
/ 17 января 2010
RewriteCond %{HTTP_HOST} !^www\.georgemitra\.com$
RewriteRule ^(.*)$ http://www.georgemitra.com/$1 [R=301,L]

RewriteRule ^$ /index.html
RewriteRule ^blog$ /blog/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/live/
RewriteRule ^(.*)$ /live/$1

У тебя почти было это. Я переместил ловушку поддомена www, чтобы пойти первым, и перед тем, как продолжить, перенес его в браузер. Затем, когда запрос возвращается, я просто добавил силу index.html в корень и улов для / blog без косой черты. Надеюсь, это поможет.

0 голосов
/ 17 января 2010

Если вы не хотите вставлять «живое» в URL, это звучит так, как будто вы хотите не перенаправление, а обратный прокси.

...