Reemplace el espacio con el guión (-) solo en la url

¿Es posible cambiar el espacio en la url a un guión (-) sin cambiarlo en el código?

La URL se usa para identificar la página, por lo que no es posible cambiar la URL porque la página ya no se encontrará, por lo que str_replace no se puede utilizar en esta solución.

Usar str_replace dos veces, una para cambiar el espacio a guión y en el cargador de páginas para cambiarlo a espacios tampoco funcionará, algunas páginas ya tienen un guion en el nombre de página 🙂

Esperaba que esto se pudiera lograr con htaccess, pero no tengo idea de cómo. ¿Es posible con htacces mostrar una URL diferente en el navegador y luego la url real?

Por ejemplo: www.example.com/pages/hello%20world debe ser visible como www.example.com/pages/hello-world pero la variable GET aún debe ser hello%20world .

Este es mi archivo .htaccess actual

  RewriteEngine On RewriteCond %{THE_REQUEST} \s/+home/httpd/vhosts/domain.nl/httpdocs/app/View/Products/([^%20]*)%20([^\s]*) [NC] RewriteRule ^/home/httpd/vhosts/domain.nl/httpdocs/app/View/Products/%1-%2 [L,NE,R] RewriteRule "^(/home/httpd/vhosts/domain.nl/httpdocs/app/View/Products/)/([^-]*)-+(.*)$" "/$1/$2 $3" [L,NE,NC] RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php [QSA,L]  

Ejemplo de URL a uno de los productos = http://www.example.nl/software/category/details/this%20is%20a%20product-name

Puede intentar algo como esto en su archivo DOCUMENT_ROOT/.htaccess :

 RewriteEngine On RewriteCond %{THE_REQUEST} \s/+path/([^%20]*)%20([^\s]*) [NC] RewriteRule ^ /path/%1-%2 [L,NE,R] RewriteRule "^(path)/([^-]*)-+(.*)$" "/$1/$2 $3" [L,NE,NC]