URL обратного прокси-сервера Apache не работает - PullRequest
0 голосов
/ 12 ноября 2018

Я пытаюсь сопоставить URL с несколькими параметрами и использовать обратный прокси-сервер для загрузки другого содержимого, по какой-то причине Location Tag не работает.

Ниже мой httpd.conf файл

<Location "/tracker/">
  ProxyPass "http://website.com:8290/track.js"
  ProxyPassReverse "http://website.com:8290/track.js"
  Order allow,deny
  Allow from all
</Location>

<Location "/tracker/csc-event?p=([^\s]+)&s=([^\s]+)&v=([^\s]+)&e=([^\s]+)&c=([^\s]+)&n=([^\s]+)&f=([^\s]+)&l=([^\s]+)&i=([^\s]+)&j=([^\s]+)&k=([^\s]+)&w=([^\s]+)&h=([^\s]+)&t=([^\s]+)&x=([^\s]+)">
  ProxyPass "http://website.com:8290/csc-event?p=([^\s]+)&s=([^\s]+)&v=([^\s]+)&e=([^\s]+)&c=([^\s]+)&n=([^\s]+)&f=([^\s]+)&l=([^\s]+)&i=([^\s]+)&j=([^\s]+)&k=([^\s]+)&w=([^\s]+)&h=([^\s]+)&t=([^\s]+)&x=([^\s]+)"
  ProxyPassReverse "http://website.com:8290/csc-event?p=([^\s]+)&s=([^\s]+)&v=([^\s]+)&e=([^\s]+)&c=([^\s]+)&n=([^\s]+)&f=([^\s]+)&l=([^\s]+)&i=([^\s]+)&j=([^\s]+)&k=([^\s]+)&w=([^\s]+)&h=([^\s]+)&t=([^\s]+)&x=([^\s]+)"
  Order allow,deny
  Allow from all
</Location>

Когда я нажимаю: https://website.com/tracker все работает нормально Но не в другом месте, например, если я нажму:

https://website.com/tracker/csc-event?p=0%3Ajodv6q8w%3AdO9XGf6T4SCq7kz49hEEUwNvmkqR8Wxw&s=0%3Ajodv6q8w%3AHgkFFmKSZqdBB6E2C~F8xBKTHv8CGwbl&v=0%3AJ1gADq10d3pj1JL1lh4Dd7ZlLxQyl2~_&e=0%3AJ1gADq10d3pj1JL1lh4Dd7ZlLxQyl2~_0&c=jodvqubo&n=f&f=f&l=https%3A%2F%2Fwebsite.com%2F&i=11y&j=k8&k=1&w=mj&h=i9&t=pageView&x=-e1v043

Показывает page not found error. Что я делаю неправильно? Есть ли какая-то проблема с регулярным выражением или другие проблемы с конфигурацией?

1 Ответ

0 голосов
/ 12 ноября 2018

Если вы хотите использовать регулярное выражение в директиве location, вы должны добавить тильду (~), но даже тогда Location не соответствует строке запроса. Добавьте / tracker / csc-event как Location и проверьте строку запроса внутри этой директивы.

Кроме того, proxypass преобразует строку запроса, нет необходимости добавлять ее.

...