Вот более чистый способ сделать его, который был предложен прежде:
ssh -f -N -L 14880:internalserver:3306 gateway.example.com &
PIDSSH=$!
( sleep 600 ; echo "Timeout." ; kill $PIDSSH ) &
PIDSLEEP=$!
wait $PIDSSH
kill $PIDSLEEP && echo "Session ended before timeout"
wait
Однако Вы не получаете код ошибки от ssh, но это могло быть расположено.
Если у Вас есть закодированная наклонная черта вправо в URI, Apache возвращает непосредственные 404. Журнал ошибок укажет:
[информация] [клиент 1.2.3.4] нашла %2f (закодированным '/') в URI (декодируемый = '/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 на этой странице.