Правило mod_rewrite с исходным PATH/QS

  • Автор темы Вергилий
  • 29
  • Обновлено
  • 17, May 2024
  • #1
Привет, Пожалуйста, извините за мое невежество, но я не могу заставить простое правило перезаписи работать так, как я хочу.

По сути, я пытаюсь использовать дружественные URL-адреса для своего блога.

Фактический блог находится в одном файле CGI (blog.cgi, расположенном в корне /blog/blog.cgi). Я пытаюсь добиться следующего: любые обращения, поступающие на https: // w w w. мой домен.

c o m / b log / (с косой чертой в конце или без нее) для маршрутизации в blog.cgi, включая правильную обработку PATH_INFO и QUERY_STRING.

например.:

  • ч т т пс : // ш ш ш . мой домен. c o m / b log / -> /home/yha/public_html/blog/blog.cgi, PATH_INFO='', QUERY_STRING=''
  • ч т т пс : // ш ш ш . мой домен. c o m / b l o g -> /home/yha/public_html/blog/blog.cgi, PATH_INFO='', QUERY_STRING=''
  • ч т т пс : // ш ш ш . мой домен. c o m / блог s l k f -> 404
  • ч т т пс : // ш ш ш . мой домен. c o m / b log / 1 -> /home/yha/public_html/blog/blog.cgi, PATH_INFO='/1', QUERY_STRING=''
  • ч т т пс : // ш ш ш . мой домен. c o m / b log / 2 0 1 1 / 7 / 2 4 -> /home/yha/public_html/blog/blog.cgi, PATH_INFO='/2011/7/24', QUERY_STRING=''
  • ч т т пс : // ш ш ш . мой домен. c o m / b l o g / 2 0 1 1 / 7 / 2 4 & m y p a r a m = 1 -> /home/yha/public_html/blog/blog.cgi, PATH_INFO='/2011/7/24', QUERY_STRING='myparam=1'


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

Это самое близкое к чему я смог, поместив следующее в .htaccess в корне моего документа (/home/yha/public_html):

Перезаписать двигатель включен

RewriteRule "^/blog(.*)$" "/blog/blog.cgi" [H=cgi-script,NC,L,E=PATH_INFO:$1]

Теоретически шаблон должен соответствовать любому URL-адресу, начинающемуся с /blog, за которым следует любое количество символов, и фиксироваться в $1, который я установил в PATH_INFO с флагом E. Я получаю ошибку 403: «У вас нет разрешения на доступ к запрошенному каталогу.

Либо нет индексного документа, либо каталог защищен от чтения». Если я удалю правило перезаписи и получу доступ к /blog/blog.cgi, все будет работать нормально, поэтому я знаю, что это не проблема с разрешениями.

Может кто-нибудь сказать мне, что я делаю неправильно? Спасибо.

P.S. Извините за лишние пробелы в URL-адресах, но форумы не позволят мне публиковать сообщения, если все URL-адреса не действительны и не вернут ответ, что немного раздражает, учитывая, что это всего лишь примеры, чтобы донести мою точку зрения.

Вергилий


Рег
30 Apr, 2015

Тем
1

Постов
3

Баллов
13