Redirect 301 al nuovo dominio con alcuni indirizzi specifici

0

Domanda

Ho visto argomenti simili ma non riusciva a trovare una risposta concreta al mio problema.

Sto spostando il mio vecchio sito al nuovo, e alcuni Url stanno cambiando.

Vorrei fare un generico 301 reindirizzamento al nuovo dominio (perché la maggior parte dei percorsi sono gli stessi), mentre singolarmente alcuni Url di reindirizzamento.

Qui è che cosa ho sul mio vecchio sito .htaccess :

<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteCond %{HTTP_HOST} ^old\.com$ [OR]
  RewriteCond %{HTTP_HOST} ^www\.old\.com$
  RewriteRule (.*)$ https://new.com/$1 [R=301,L]

  Redirect 301 "/custom/url/" "https://new.com/my-custom-url"
</IfModule>

Ma il redirect 301 per : https://new.com/custom/url invece di https://new.com/my-custom-url

Alcuni dei miei Url anche i parametri dell'URL vorrei redirect, come ad esempio :

Redirect 301 "/brand.php?name=Example" "https://new.com/Example"
Redirect 301 "/brand.php?name=Example2" "https://new.com/another/url"

che non sembrano funzionare bene.

La ringrazio molto per il vostro aiuto.

.htaccess redirect seo
2021-11-22 19:48:11
1

Migliore risposta

2

Ma il redirect 301 per : https://new.com/custom/url invece di https://new.com/my-custom-url

È perché la vostra specifica regola di reindirizzamento dopo appare generica. Inoltre il missaggio mod_rewrite con mod_alias regole e questi vengono richiamati in tempi diversi.

Sono come questa:

RewriteEngine On

# redirect /brand.php?name=Example2 to new.com/another/Example2
RewriteCond %{HTTP_HOST} ^(www\.)?old\.com$ [NC]
RewriteCond %{QUERY_STRING} ^name=(Example2) [NC]
RewriteRule ^brand\.php$ https://new.com/another/%1? [R=301,L,NE]

# redirect /brand.php?name=Example3 to new.com/category/Example3
RewriteCond %{HTTP_HOST} ^(www\.)?old\.com$ [NC]
RewriteCond %{QUERY_STRING} ^name=(Example3) [NC]
RewriteRule ^brand\.php$ https://new.com/category/%1? [R=301,L,NE]

# generic redirect /brand.php?name=Example to new.com/Example2
RewriteCond %{HTTP_HOST} ^(www\.)?old\.com$ [NC]
RewriteCond %{QUERY_STRING} ^name=([^&]+) [NC]
RewriteRule ^brand\.php$ https://new.com/%1? [R=301,L,NE]

# redirect custom URL
RewriteRule ^custom/url/ https://new.com/my-custom-url [R=301,L,NE,NC]

# redirect everything else
RewriteCond %{HTTP_HOST} ^(www\.)?old\.com$ [NC]
RewriteRule ^ https://new.com%{REQUEST_URI} [R=301,L]
2021-11-23 19:38:59

Funziona, grazie. Ho un'altra domanda : Come posso reindirizzare l'URL parametri singolarmente, invece di una generica regola ? Per esempio "old.com/brand.php?name=Example" a "new.com/brand/example" E "old.com/brand.php?name=Example2" a "new.com/example2" ?
Malcom

Mi dispiace, io non sono sicuro di come utilizzare questo. Ho provato : RewriteCond %{THE_REQUEST} /brand\.php\?name=([mybrandname) [NC] RewriteRule ^ https://new.com/brands/mybrandname [R=301,L,NE] Che restituisce un errore 500
Malcom

Forse non è stato abbastanza chiaro, ma ogni brand.php?name=something deve essere reindirizzato a un singolo URL. Io non sono sicuro di come modificare il vostro esempio di conseguenza. brand.php?name=brand1 deve essere reindirizzati a new.com/product-category/brand1 e brand.php?name=brand2 deve essere reindirizzati a new.com/brand2 (per esempio)
Malcom

Questo /product-category/ è una nuova aggiunta che non è stato coperto in condizione originale. Regola attuale è generico e quindi brand.php?name=anything verrà reindirizzati a new.com/anything. Eventuali casi specifici si possono modificare se stessi cambiando: RewriteCond %{QUERY_STRING} ^name=([^&]+) [NC]
anubhava

Controllare il mio aggiornati risposta ora di vedere generici e specifici delle regole di reindirizzamento
anubhava

È perfetto, la ringrazio molto per il vostro tempo e il vostro aiuto.
Malcom

In altre lingue

Questa pagina è in altre lingue

Русский
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................