PHP / Apache: reescribe las reglas con .htaccess

Tengo un pequeño dilema con mod_rewrite.
¿Cómo escribo una regla que decida lo siguiente?

Si navego / es / page / page Quiero reescribir esto para:
index.php? language = es & page = / page

PERO si solo navego /página Quiero reescribir esto para:
index.php? page = / página

¿Es esto posible?

Edit:
/ page es solo un nombre de página dinámico aleatorio, también podría ser lo que.

Necesito una regla que verifique como / se == una cadena, y no más de 2 caracteres> / page -> index.php? Lang = se & page = / page y si navega por una página / página notará que / page == más de 2 caracteres y reescribir en index.php? page = / page

Edit2: Encontré la respuesta a mi pregunta:

    RewriteEngine en RewriteBase / ## Comprueba si no es un nombre de archivo o directorio. RewriteCond% {REQUEST_FILENAME}! -L RewriteCond% {REQUEST_FILENAME}! -F RewriteCond% {REQUEST_FILENAME}! -D ## Rewrite rules RewriteRule) ^ (. {2 /(.*)$ index.php? lang = $ 1 & page = $ 2 [L] RewriteRule ^ (. *) $ index.php? page = $ 1 [L, QSA]

preguntado el 08 de agosto de 11 a las 09:08

3 Respuestas

¡Lo hice funcionar por mi cuenta! Aquí están las reglas si alguien más necesita hacer lo mismo:

    RewriteEngine en RewriteBase / ## Comprueba si no es un nombre de archivo o directorio. RewriteCond% {REQUEST_FILENAME}! -L RewriteCond% {REQUEST_FILENAME}! -F RewriteCond% {REQUEST_FILENAME}! -D ## Rewrite rules RewriteRule) ^ (. {2 /(.*)$ index.php? lang = $ 1 & page = $ 2 [L] RewriteRule ^ (. *) $ index.php? page = $ 1 [L, QSA]

Respondido 08 ago 11, 22:08

RewriteRule ^page$ index.php?language=en&page=/page/page [L]
RewriteRule ^page/ index.php?language=en&page=/page [L]

Respondido 08 ago 11, 13:08

prueba esto:

RewriteRule ^(.*)/(.*)(/.*)$ index.php?language=$1&$2=$3 [L]
RewriteRule ^page$ index.php?page=/page/page [L]

Respondido 08 ago 11, 13:08

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.