Я перевожу старый сайт с apache 2.2 на 2.4
У меня есть vhost.conf
файл, который содержит следующую переписывающую строку:
RewriteRule ^/news/[0-9]{4}/[A-za-z]{3}/([0-9a-zA-Z-]*)/([0-9]{4})([0-9]{6})/?$ "/news/article.cfm?article_id=$3&urltitle=$1&clk=$2" [NE,L]
Итак, я ' я пытаюсь превратить этот URL: https://example.com/news/2016/Feb/Article-Title/0025012345
в это: https://example.com/news/article.cfm?article_id=012345&urltitle=Article-Title&clk=0025
В зависимости от того, что я положил во 2-й части RewriteRule я получаю следующее:
"https://example.com/news/article.cfm?article_id=$3&urltitle=$1&clk=$2"
это работает нормально, но я не хочу указывать имя хоста, поскольку оно используется на серверах dev / staging / live, поэтому URL-адреса меняются
"/news/article.cfm?article_id=$3&urltitle=$1&clk=$2"
это выдает 404, которое появляется в access_log
"news/article.cfm?article_id=$3&urltitle=$1&clk=$2"
, это выдает 503, которое появляется в access_log
Так что я знаю, что я правильно идентифицируя URL-адрес в первой части правила и выбирая правильные компоненты с помощью моего регулярного выражения, поскольку указание полного имени домена показывает правильную манипуляцию URL-адресом.
Я полностью не могу выполнить относительное перенаправление, и Я уверен, что это правило работает в Apache 2.2
Я использую следующее программное обеспечение:
CentOS Linux r выпуск 7.7.1908 (Core)
Версия сервера: Apache / 2.4.6 (CentOS) Сервер построен: 8 августа 2019 г. 11: 41: 18