htaccess rewriterule для каталога изменяет URL-адрес нежелательным образом - PullRequest
0 голосов
/ 09 декабря 2010

РЕДАКТИРОВАТЬ
После комментария от Сета ниже и перехода на полезную страницу Apache здесь я обнаружил, что VirtualHosts - это способперейдите к следующей проблеме.
/ edit

- ОРИГИНАЛЬНАЯ ПОЧТА -
Сначала немного информации о настройке файла.Я использую сервер LAMP, на котором размещены несколько доменов.У меня есть промежуточные и живые сайты на этом сервере, в разных каталогах в корневом каталоге.

examples / webroot / live / site1 / [публичные файлы] / webroot / live / site2 / [публичные файлы]

/ webroot / stage / site1 / [публичные файлы] / webroot / stage / site2 / [публичные файлы]

Домены для каждого из них переходят на IP-адрес сервера, который указывает на webrootкаталог.У меня есть файл .htaccess для загрузки соответствующего содержимого на основе http_host.

examples

RewriteCond %{HTTP_HOST} ^www.site1-live.com [NC]
RewriteRule ^(.*)$ /live/site1/$1 [PT,L,QSA]

RewriteCond %{HTTP_HOST} ^www.site1-stage.com [NC]
RewriteRule ^(.*)$ /stage/site1/$1 [PT,L,QSA]

Они отлично подходят для попадания на домашнюю страницу и любую из внутренних страниц, даже есликонкретные страницы похожи на site1-live.com/view/123.Htaccess каждого сайта обрабатывает их.

Моя проблема (извините, что так долго добирался сюда):

Когда я направляюсь в любой подкаталог на сайте, например, www.site1-live.com/rss, содержимое загружается просто отлично, но URL-адрес меняется на что-то вроде следующего:

http://www.site1-live.com/live/site1/rss/

По существу показывает путь от рут-корня до файлов.

Какя могу избежать этого?Я, очевидно, хочу, чтобы URL остался www.site1-live.com/rss.Нужен ли мне файл htaccess внутри каталога rss, чтобы как-то это заблокировать?

Заранее спасибо!

Ответы [ 2 ]

0 голосов
/ 09 декабря 2010

Дуга,

зачем вам флаг QSA?

В любом случае, с вами происходит то, что mod_index (или все, что обслуживает вас каталоги) перенаправляет вас www.site1-live.com/rss (без окончания /) на эквивалентный URL с окончанием /.

Если вы не используете mod_alias или что-то в списке переписанных URL-адресов, удаление PT должно работать так, как вы ожидаете.

0 голосов
/ 09 декабря 2010

заменить ^ www на ^ (. *)

затем укажите весь URL во второй строке www.yourdomain.com/live/...

...