Чистые URL Drupal разбиваются случайным образом для произвольных путей - PullRequest
1 голос
/ 17 июня 2010

Я все сделал правильно. На моем сервере включен mod_rewrite, для пути к виртуальному хосту AllowOverride установлено значение All, и у меня есть файл .htaccess с правилами перезаписи, такими же, как у всех. Но у меня проблемы с доступом к некоторым страницам, используя их чистые пути URL. Таким образом, для 90% страниц чистые URL работают нормально. Но за эти 10% они этого не делают.

Я проверил, существуют ли эти страницы - они есть. Проверено, доступны ли они с помощью index.php? Q = [путь] - и они есть. Они недоступны только по чистым URL-путям.

Может кто-нибудь помочь мне с этой загадкой?

Ответы [ 2 ]

1 голос
/ 18 июня 2010

Поскольку вы можете получить доступ к своим страницам через q = path / to / menu / item, то ясно, что виноват mod_rewrite, а не Drupal.

Чтобы отладить то, что происходит с вашей перезаписью, либо включите журнал перезаписи и задайте -f, когда вы запрашиваете проблемные страницы, либо альтернативно print_r ($ _ GET) вверху индекса. php или page.tpl.php, чтобы увидеть, что на самом деле запрашивается.

Если вам удобно размещать здесь потенциально уязвимый .htaccess, сделайте это, и мы посмотрим на него, чтобы увидеть, есть ли какие-либо неверные конфигурации.

0 голосов
/ 17 июня 2010

mod_rewrite имеет несколько давних ошибок, которые мешают URL-адресам на пути (есть ли у ваших проблемных URL escape-символы?). Я не знаю, делает ли это Drupal, но в других приложениях PHP мне пришлось добавить код, чтобы заново выполнить перезапись после достижения правильной точки входа.

К сожалению, Drupal не может использовать свой путь поиска в PATH_INFO (как это делают многие другие приложения), в противном случае вы можете использовать mod_alias, что намного проще и надежнее.

...