Apache переписать, чтобы добавить каталог в REQUEST_URI не работает на локальном хосте работает Wamp - PullRequest
0 голосов
/ 24 марта 2010

Я использую wamp в Vista (Apache v2.2.11), и у меня есть проекты, настроенные так, что http://localhost/projectx является базовым каталогом для projectx. Теперь я хочу, чтобы запросы на

http://localhost/projectx/somepage/extra

перепишется на

http://localhost/projectx/PUBLIC/somepage/extra

Для этого у меня есть файл в C:\wamp\www\projectx\.htacces, который так прост:

RewriteEngine On
RewriteBase /projectx
RewriteCond %{REQUEST_URI} !^/PUBLIC
RewriteRule ^(.*)$ /PUBLIC$1 [L]

Не могу понять, почему это не работает. Я получаю сообщение об ошибке: «Запрошенный URL / PUBLIC не найден на этом сервере». Спасибо.

ОБНОВЛЕНИЕ 25 марта 2010 г .:

Согласно решению Михаила, я удалил абсолютный путь. По какой-то причине мне также нужно было добавить последнюю косую черту в правило и правило:

RewriteEngine On
RewriteBase /projectx
RewriteCond %{REQUEST_URI} !^/PUBLIC/
RewriteRule ^(.*)$ PUBLIC/$1 [L]

Ответы [ 2 ]

1 голос
/ 24 марта 2010

Попробуйте изменить это:

RewriteRule ^(.*)$ /PUBLIC$1 [L]

К этому:

RewriteRule ^(.*)$ PUBLIC$1 [L]

Вероятно, проблема в абсолютном пути.

Вам также нужно изменить $1 на ноль, поэтому RewriteRule ^(.*)$ PUBLIC$0 [L]

0 голосов
/ 24 марта 2010

Должно быть

RewriteEngine On     
RewriteBase /projectx  
RewriteCond %{REQUEST_URI} !^/PUBLIC  
RewriteRule  ^(.*)(PUBLIC)(.*)$ /projectx/PUBLIC$3 [L]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...