.htaccess 301 redireccionamiento de una sola página
Después de un rediseño del sitio, tengo un par de páginas que necesitan ser redirigidas. Todo se mantiene en el mismo dominio, solo un par de cosas se han reorganizado y/o renombrado. Son de la forma:
/contacto.php
Es ahora:
/ contact-us.php
Usando el .archivo htaccess, he añadido esta línea, que es la que me parece más recomendada:
RedirectMatch 301 /contact.php /contact-us.php
Esto está muy bien-hace el trabajo - el problema es, también redirecciones:
- /team1/contact.php
- /non-existant-folder/contact.php
Hay una forma de especificar que solo quiero redirigir el contacto.php en la raíz?
6 answers
RedirectMatch
utiliza una expresión regular que se compara con la ruta de la URL. Y su expresión regular {[2] } solo significa cualquier ruta de URL que contenga /contact.php
pero no solo cualquier ruta de URL que sea exactamente /contact.php
. Así que usa los anclajes para el inicio y el final de la cadena (^
y $)
:
RedirectMatch 301 ^/contact\.php$ /contact-us.php
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-09-14 11:59:36
Esto debería hacerlo
RedirectPermanent /contact.php /contact-us.php
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-09-14 11:51:14
redirect 301 /contact.php /contact-us.php
No tiene sentido usar la regla redirectmatch y luego tener que escribir sus enlaces para que coincidan exactamente. Si usted no incluye usted no tiene que excluir! Simplemente use redirect sin coincidencia y luego use enlaces normalmente
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-06-19 15:48:20
También podría usar una RewriteRule si desea la capacidad de emparejar plantillas y redirigir URL.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-09-14 11:51:16
Si prefiere usar la solución más simple posible para un problema, una alternativa a RedirectMatch es, la directiva más básica, Redirect.
No usa coincidencia de patrones y por lo tanto es más explícito y más fácil de entender para otros.
Es decir
<IfModule mod_alias.c>
#Repoint old contact page to new contact page:
Redirect 301 /contact.php http://example.com/contact-us.php
</IfModule>
Las cadenas de consulta deben transferirse porque los documentos dicen:
La información de ruta adicional más allá de la URL-ruta coincidente será anexo al objetivo URL.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-04-18 13:57:10
Redirigirá la página de tu tienda a tu página de contacto
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
Redirect 301 http://www.youtdomain.com/store http://www.youtdomain.com/contact
</IfModule>
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-09-29 00:50:37