Как я могу переписать правила с псевдонимами? - PullRequest
5 голосов
/ 30 июня 2011

Я заранее извиняюсь, если это слишком долго. Я полагаю, что больше деталей лучше, чем меньше, и надеюсь, что я не ужасно болтаю: -)

Я использую WAMP на своем ноутбуке для локального разработчика, и у меня есть различные c:/wamp/alias/* файлы, каждый из которых указывает на рабочий каталог проекта. Я получил отличную помощь mod_rewrite и получил

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*\/)?ih(\/.*)?$ $1index.php$2 [L,QSA]

для изменения localhost/.../ih/sub/dir на localhost/.../index.php/sub/dir для URL-адресов, которые являются как SEO-дружественными, так и короткими. [Я не собирался делать это в prod, но подозреваю, что это сработает так же хорошо.] Однако, чтобы собрать все это вместе, мне пришлось изменить корень документа с c:/wamp/www/ на c:/, что я бы и сделал. на самом деле лучше этого не делать на тот случай, если мой Apache взломан, а может быть иначе, потому что это бред.

Мой тестовый файл псевдонимов выглядит как

Alias /testme "c:/var/tmp/wamp-testme/"
<Directory "c:/var/tmp/wamp-testme/">
  Options Indexes FollowSymLinks MultiViews
  AllowOverride all
    Order Deny,Allow
    Deny from all
    Allow from 127.0.0.1
  RewriteEngine On
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule ^(.*\/)?ih(\/.*)?$ $1index.php$2 [L,QSA]
</Directory>

и ошибка при попытке загрузить http://localhost/testme/rewrites/ih/sub/path равна

[Thu Jun 30 06:46:13 2011] [error] [client 127.0.0.1]
  File does not exist: C:/wamp/www/var

с соответствием

Not Found
The requested URL /var/tmp/wamp-testme/rewrites/index.php/sub/path
  was not found on this server.

в браузере. Конечно же, тот же конфиг в моем файле c:/wamp/alias/flying.conf, который указывает на каталог c:/data/flying/, выдает File does not exist: C:/wamp/www/data в файле журнала ошибок и т. Д.

Оооочень ... Как я могу иметь правило перезаписи, которое выходит за рамки псевдонимов, не имея моего корня документа в моей директории root компьютера?

1 Ответ

7 голосов
/ 30 июня 2011

Нечетное: попробуйте добавить флаг PT к правилу перезаписи: это заставит переписанный URL отправляться обратно в механизм отображения URL.

РЕДАКТИРОВАТЬ: попробуйте установить RewriteBase в каталоге.

...