En general, lo que se muestra a continuación funciona (y he visto muchos ejemplos que muestran una sola subcarpeta), pero no sé cómo ajustar la expresión regular para hasta 3 subcarpetas opcionales y excluir cualquier barra del valor de la cadena de consulta
RewriteRule ^([^/]+)/([^/]+)/(.*)?$ player.php?app=$1&stream=$2&mode=$3&%{QUERY_STRING} [L,QSA]
https://wowza.example.com/App/Stream/Mode/?other=stuff https://wowza.example.com/App/Stream/Mode https://wowza.example.com/App/Stream/ https://wowza.example.com/App https://wowza.example.comEsta es mi salida perfecta, mostrando las 3 subcarpetas con o sin valores en $_GET
Array ( [app] => app [stream] => stream [mode] => [other] => stuff )Obtengo 404 o alguna variación de esto que tiene la barra inclinada final.
Array ( [app] => app [stream] => stream [mode] => mode/ [other] => stuff ) Puedo ver que el seguimiento ? después del último grupo de captura lo hace opcional, pero no entiendo cómo hacer que TODOS sean opcionales y tratar las barras como delimitadores, no como "valores".
Cualquier ayuda es apreciada.
Sin respuestas, proporcionaré lo que obtuve para la cadena de consulta, aunque no puedo eliminar las barras inclinadas. Esta regla de reescritura tiene en cuenta de 0 a 3 carpetas en la ruta, así como la cadena de consulta proporcionada.
RewriteRule ^([^/]+)?/?([^/]+)?/?(.+)?$ player.php?app=$1&stream=$2&mode=$3&%{QUERY_STRING} [L,QSA]
Array ( [app] => [stream] => [mode] => ) Array ( [app] => app [stream] => stream [mode] => mode/ )