2013-10-01 2 views
0

Я бы хотел разрешить нечувствительные к регистру URL-адреса в DocPad, например. http://host.me/SomePath должен указывать тот же документ, что и http://host.me/somepath или /sOmEpAtH.Как разрешить нечувствительные к регистру URL-адреса в DocPad?

Я уже смотрел плагин cleanurls, пытаясь найти подходящий крючок там ... но кажется, что он добавляет еще urls только к метаинформации документов, чтобы уменьшить расширение и, возможно, слэш, url.

Как бы добавить в регистр нечувствительные URL-адреса к DocPad?

+0

Для чего вы хотите этого? AFAIK это никогда не беспокоило URL. Я не сталкивался с сайтом, который исправляет URL-адреса, если они написаны неправильно. – greduan

+0

Скорее всего, вы пришли по множеству сайтов, которые нечувствительны к регистру и достаточно удачливы, чтобы не осознавать этого, потому что они есть. Если это возможно, чтобы пользователи могли легко испытывать 404, я бы этого хотел. – stackasec

+0

Я столкнулся с множеством 404-х из-за шапок, тонны раз. Несколько способов, которые я могу придумать для достижения этого, - либо покрыть ВСЕ случаи, либо сделать файл для всех возможных вариантов, что глупо, потому что для каждого URL будут сотни, а не тысячи файлов. Другой способ - настроить некоторые правила перезаписи URL-адресов Apache или эквивалент для Nginx, чтобы обнаружить эти опечатки и исправить их. – greduan

ответ

0

Я не знаю о вашем конкретном случае, но можно перехватить URL-адреса в файле docpad.coffee. В частности, я думаю о событии serverExtend, где вы можете создать обработчик для «server.get». В этом случае вы можете изменить все символы на нижний регистр, а затем вернуть «безликий» документ, используя что-то вроде этого:

document = docpad.getCollection('documents').findOne({relativeOutPath: 'nocapitals.html'}); 
      docpad.serveDocument({ 
       document: document, 
       req: req, 
       res: res, 
       next: next, 
       statusCode: 200 
      }); 
+0

Спасибо, Стив, похоже, это хорошая отправная точка. Как я изменил его, чтобы все документы были бесполезными? – stackasec

+0

Стив, для этого требуется, чтобы сайт размещался на динамическом сервере, нет? Другими словами, сервер Node.js? – greduan

+0

Чтобы разрешить обработку по запросу, вам нужно запустить docpad нестатические ... да. – stackasec

Смежные вопросы