redirigir la coincidencia exacta de URL con htaccess no redirigir si la cadena de consulta o cualquier cosa después de index.php
Redirect This Page: https://example.com/demo/index.php To Page: https://example.com/ (home page) But Do Not redirect: https://example.com/demo/index.php/* Do NOT redirect: https://example.com/demo/index.php/password Do NOT redirect https://example.com/demo/index.php?m=page not redirect if any other combination only redirect https://example.com/demo/index.php to https://example.com/este script no funciona
RewriteEngine On RewriteBase / RewriteRule ^demo/index.php /demo/index.php?m=page[L,NC,END] RewriteRule ^demo/index.php$ https://example.com/ [L,R=301]solo redirija
https://example.com/demo/index.phpahttps://example.com/
Si solo desea redirigir esa URL exacta , sin una cadena de consulta, debe revertir sus reglas existentes e incluir una condición adicional que verifique que QUERY_STRING esté vacío. RewriteRule solo coincide con la ruta de URL, que excluye la cadena de consulta.
También le falta un espacio antes del argumento de las banderas en la primera regla.
Por ejemplo:
# Redirect exact URL to home page RewriteCond %{QUERY_STRING} ^$ RewriteRule ^demo/index\.php$ / [R=302,L] # Redirect other URLs with query string OR path-info RewriteRule ^demo/index\.php /demo/index.php?m=page [NC,L] No necesitas L y END .
Pruebe con 302 y cambie a 301 solo una vez que haya confirmado que funciona bien. Para evitar problemas de almacenamiento en caché.
Puede usar estas reglas en la raíz del sitio .htaccess:
RewriteEngine On RewriteCond %{THE_REQUEST} \s/+demo/index\.php\s [NC] RewriteRule ^ / [L,R=301] RewriteRule ^demo/index\.php$ $0?m=page [QSA,NC,L]Esto fue creado por el generador de redirección htaccess que uso muy a menudo.
RewriteCond %{QUERY_STRING} ^$ RewriteRule ^demo/index\.php$ https://example.com/? [R=301,L]Quizás "?" El signo es redundante debido a una coincidencia de cadena de consulta vacía.
No estoy seguro, pero también puedes intentar agregar
RewriteCond %{REQUEST_METHOD} !=POSTen caso de que no pueda iniciar sesión. Todos juntos:
RewriteCond %{REQUEST_METHOD} !=POST RewriteCond %{QUERY_STRING} ^$ RewriteRule ^demo/index\.php$ https://example.com/? [R=301,L]