mod_rewrite плохо работает с cfimport (Coldfusion) на OS X Lion - PullRequest
1 голос
/ 15 ноября 2011

Запуск Apache на OS X Lion и Coldfusion 9 для разработчиков.У меня есть следующий файл .htaccess.

Options +FollowSymlinks<br>
    Options +Indexes
    RewriteEngine on
    RewriteBase /</p>

<pre><code>RewriteCond %{REQUEST_URI} !=/index.cfm [NC]
RewriteRule ^([^/]+)/?$ /index.cfm?page=$1 [L,NC]
RewriteRule ^([^/]+)/([^/]+)/?$ /index.cfm?app=$1&page=$2 [L,NC]

, который предназначен для работы с URL-адресами, такими как mydomain.com/something и mydomain.com/something/else.Довольно нормальные вещи.

Кажется, все работает нормально, пока я не загружаю файл с тегом cfimport, который выглядит следующим образом:

<cfimport prefix="myLib" taglib="/lib/tags">

RewriteLog показывает, что это происходит и обрабатываетсяи перенаправил, что, конечно, нарушает все.

Я попытался добавить несколько условий, таких как:

RewriteCond %{REQUEST_URI} !=lib/tags/ [NC]
    RewriteCond %{REQUEST_URI} !=lib/tags [NC]
    RewriteCond %{REQUEST_URI} !=/lib/tags/ [NC]
    RewriteCond %{REQUEST_URI} !=/lib/tags [NC]
    
Ни одно из них не предотвращает проблему.

Если я реструктурирую каталоги так, чтобы я загружал их так:

<cfimport prefix="myLib" taglib="/lib/dir/tags">
Все хорошо.Это не вариант, потому что это проект групповой разработки, и я единственный, у кого проблемы, а Windows / IIS является целевой средой развертывания.

Базовый файл .htaccess, показанный вверху, работаеткомпьютер с Windows, работающий под управлением Apache.

1 Ответ

1 голос
/ 15 ноября 2011

Понятия не имею, почему / как cfimport вызывает срабатывание mod_rewrite - для этого он даже не должен разговаривать с веб-сервером.

Может быть, вам нужно создать отображение /lib в CF admin?


В любом случае, вы, вероятно, можете остановить свои правила переписывания, возиться с ним, добавив в начало префикс отрицательного предвкушения, чтобы он проигнорировал lib/tags, например:

(?!lib/tags)

Поместите это после ^ для второго выражения.

...