ModRewrite работает только для некоторых опций - PullRequest
0 голосов
/ 09 января 2011

Мой файл htaccess имеет следующий вид:

RewriteEngine On
RewriteRule ^blog/post/([0-9]+) /blog.php?post=$1
RewriteRule ^blog/page/([0-9]+) /blog.php?page=$1
RewriteRule ^work/([0-9]+) /work.php?ID=$1

Правило work.php работает, а два правила блога - нет.Они привыкли ко всей работе, но я недавно перенес свой сервер.Любые идеи, почему это будет?

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

Редактировать: Вау, я заметил, что у меня была рабочая папка, но нет папки блога, поэтому я сделал ее, и теперь это работает,Есть идеи почему?

1 Ответ

1 голос
/ 09 января 2011

Я только что установил (виртуальный) сервер на своей локальной установке Apache 2.2, используя PHP 5.2 в качестве модуля.Корень документа сервера содержал только php-файлы для (упрощенно) обработки приведенных выше примеров (просто повторяя параметры из $ _GET).Мой файл .htaccess в корне документа содержал только то, что вы указали выше, и ничего больше.Корень документа не содержал подкаталоги / work или / blog (или / blog / post или /blog/page).

У моей установки не было никаких проблем при переписывании оптимизированных для SEO URL-адресов в соответствующиеPHP-файлы, которые, в свою очередь, отражали значения параметров, которые я ожидал от $ _GET.

Есть что-то кроме mod_rewrite, требующее наличия подкаталогов, и Apache нажимает (и, следовательно, требует) его перед обработкой перезаписиправила.Не уверен, что это такое, но это не похоже на mod_rewrite, учитывая правила, которые у вас есть выше.

...