Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

160
Visualizações
htaccess redirect 301 funciona pero RewriteRule no

Antes de usar la declaración de redirect 301 . Ahora estoy en una posición en la que necesito usar la declaración RewriteRule para hacer uso de las banderas (redirigir sin la cadena de consulta), pero por alguna razón, no funciona.

Este es mi archivo .htaccess :

 # BEGIN WordPress # Директивы (строки) между `BEGIN WordPress` и `END WordPress` # созданы автоматически и подлежат изменению только через фильтры WordPress. # Сделанные вручную изменения между этими маркерами будут перезаписаны. <IfModule mod_rewrite.c> RewriteEngine On RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] #this is working redirect 301 /bad-link/ http://localhost:8000/ #this is not working RewriteRule ^test/bad-link.*$ "http://localhost:8000" [NC,QSD,L,R=301] #this is also not working RewriteRule "test/bad-link" "http://localhost:8000" [R=301] </IfModule> # END WordPress
over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Tienes las directivas en el orden incorrecto. Las redirecciones mod_rewrite (es decir, las directivas RewriteRule ) deben desaparecer antes de que el controlador frontal de WordPress vuelva a escribir. Al colocarlos después de las directivas de WordPress, nunca se procesarán, ya que la solicitud ya se ha reescrito en el controlador frontal de WP ( index.php ) y el procesamiento se detiene.

No debe editar el código dentro del bloque de código # BEGIN WordPress / # END WordPress ya que WordPress mismo intenta mantener este bloque de código y sus ediciones pueden sobrescribirse.

Debe colocar sus directivas de redirección RewriteRule 301 antes del marcador de comentario # BEGIN WordPress . No necesita repetir la directiva RewriteEngine On que ocurre más tarde, dentro del bloque de código de WordPress.

La directiva mod_alias Redirect habría "funcionado" porque no depende del orden de las directivas en relación con las otras directivas mod_rewrite. Diferentes módulos de Apache se ejecutan de forma independiente y en diferentes momentos durante la solicitud, independientemente del orden de las directivas en el archivo de configuración. mod_rewrite se ejecuta antes que mod_alias y la Redirect siempre se ejecuta independientemente del resultado de las directivas mod_rewrite anteriores (a menos que activen una redirección externa).

En otras palabras:

 # External redirects... RewriteRule ^test/bad-link http://localhost:8000/ [NC,QSD,R=301,L] # BEGIN WordPress : etc.

Tenga en cuenta que el .*$ al final de su expresión regular es superfluo.

NB: Pruebe primero con redireccionamientos 302 (temporales) para evitar posibles problemas de almacenamiento en caché.

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda