Внутри httpd.conf:
rewriterule ^questions/([0-9]+).* ...
Это соответствует /questions/1674/<textarea>
,но нет /questions/1674/<textarea><%2Ftextarea>
Если у вас есть закодированная косая черта в URI, Apache вернет immediete 404. В журнале ошибок будет указано:
[info] [клиент 1.2.3.4] обнаружил% 2f (закодированный '/') в URI (decoded = '/ question / 1 /'), вернул 404
Чтобы обойти это, добавьте в корневой каталог httpd.conf или <VirtualHost>
раздел следующую директиву:
AllowEncodedSlashes On
И тогда ваша перезапись будет работать. Информация из руководства Apache:
Директива AllowEncodedSlashes позволяет использовать URL-адреса, которые содержат закодированные разделители путей (% 2F для / и дополнительно% 5C для \ в соответствующих системах). Обычно такие URL-адреса отклоняются с ошибкой 404 (не найдено).
Для получения дополнительной информации см .:
http://httpd.apache.org/docs/2.0/mod/core.html#allowencodedslashes
http://blog.dynom.nl/archives/Apaches-fail-with-encoded-slashes_20090625_40.html
Может быть, вам нужен флаг No Escape [NE] на правиле? Искать noescape в эта страница.