considerar lo siguiente:
RewriteRule ^(.*)$ index.php/$1
Basándose en el conocimiento del novato novato que tengo de mod_rewrite, este debe coincidir con toda la parte URL entre example.com/
y ?query=string
, y luego se anteponga index.php/
, y, en general, eso es exactamente lo que sucede .
http://example.com/some/stuff -> http://example.com/index.php/some/stuff
Ahora, tenga en cuenta:
RewriteRule . index.php
Según los desarrolladores de la presente actualización a la Concrete5 CMS, esto hace exactamente lo mismo. Y, de hecho, parece hacer eso en mi servidor también.
Mi pregunta es, ¿por qué el segundo RewriteRule yeild el mismo resultado en lugar de algo así como
http://example.com/some/stuff -> http://example.com/index.phpome/stuff
No debería el partido .
un personaje y luego ser sustituida por la cadena index.php
? Esto está en Apache 2.2.
Los documentos dicen que la sintaxis es 'RewriteRule Pattern Substitution [flags]', ¿no? Todavía no tengo claro cómo la "sustitución" en el segundo ejemplo produce el resultado que lo hace. – NReilingh
Si 'Patrón' coincide, entonces realiza' Sustitución' * en toda la ruta que ha examinado *. –