php - reescribir - .htaccess url reescribe con variables
reescribir url htaccess (1)
En lugar de:
RewriteRule ^sub/file/([0-9]+)/?$ sub/file?num=$1 [L]
Tratar:
RewriteRule ^sub/file/([0-9]+)/?$ /sub/file.php?num=$1 [L]
Tiene razón en que [L]
dejará de procesar las reglas, pero eso también significa que no puede eliminar la extensión .php ya que la regla para eso está por debajo de esta. También tenga en cuenta la barra diagonal.
Estoy tratando de hacer que mis URL se vean más bonitas en un subdirectorio específico en mi sitio usando reescribir para cambiar:
www.example.com/sub/file/{some_number}/
internamente para:
www.example.com/sub/file.php?var={some_number}
Y sigo obteniendo un 404. Ya estoy eliminando la extensión .php de mi sitio usando un archivo .htaccess que se ve así:
RewriteEngine on
#
## Internally rewrite extensionless file requests to .php files ##
#
# If the requested URI does not contain a period in the final path-part
RewriteCond %{REQUEST_URI} !(/.[^./]+)$
# and if it does not exist as a directory
RewriteCond %{REQUEST_FILENAME} !-d
# and if it does not exist as a file
RewriteCond %{REQUEST_FILENAME} !-f
# then add .php to get the actual filename
RewriteRule (.*) /$1.php [L]
#
## Externally redirect clients directly requesting .html page URIs to extensionless URIs
#
# If client request header contains html file extension
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}/ /([^.]+/.)+html/ HTTP
# externally redirect to extensionless URI
RewriteRule ^(.+)/.html$ http://www.dirtycoffee.com/$1 [R=301,L]
# If client request header contains php file extension
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}/ /([^.]+/.)+php/ HTTP
# externally redirect to extensionless URI
RewriteRule ^(.+)/.php$ http://www.dirtycoffee.com/$1 [R=301,L]
Mi intento actual es agregar una línea en la parte superior como:
#Subdirectory rewrite:
RewriteRule ^sub/file/([0-9]+)/?$ sub/file?num=$1 [L] # Handle requests for file
Sé que debo tener reglas contradictorias, pero pensé que [L] simplemente se detendría si se aplicaba la nueva regla.