Avatar billede mergelspir Seniormester
13. februar 2024 - 12:43 Der er 10 kommentarer og
1 løsning

Hvordan kan man teste at redirect 301 fungerer?

Jeg benytter et webhotel, hvor jeg kan tilgå min hjemmeside på to måder:
1) URL = <brugernavn>.<webhotel>
2) URL = <mit domaine>

Jeg kan se, at både 1) og 2) optræder i Googles søgeresultater, så jeg vil gerne omdirigere trafikken fra 1) til 2) med en 301 redirect.

Jeg har tilføjet følgende i min .htaccess fil:

RewriteCond %{HTTP_HOST} ^<brugernavn>.<webhotel>$ [NC,OR]
RewriteRule (.*)$ https://<mit domaine>/$1 [R=301,L]

Jeg havde forventet, at når jeg skrev 1) i adressefeltet i FIrefox, så ville det blive erstattet med "https://<mit domaine>", men det er ikke tilfældet.

Jeg har prøvet at slette cache i Firefox, men det gjorde ingen forskel.

(Jeg kunne godt skrive den præcise tekst i RewriteCond og RewriteRule, men det har jeg forstået, at det mås man ikke, da det opfattes som skjult reklame)

Spørgsmål:
Hvordan kan jeg teste at min redirect fungerer?

På forhånd tak.
Avatar billede erikjacobsen Ekspert
13. februar 2024 - 13:27 #1
2 ting:

- Har du lov til at lave rewrite på det webhotel?
- Muligvis er det nødvendigt med en linje først:  RewriteEngine on

Det du fornuftigvis ikke skriver er domænenavne, men hvis du går til https://sjovfyr.superwebhotellet.xxx/index.html  så skal du skrive:

    RewriteCond %{HTTP_HOST} ^sjovfyr\.superwebhotellet\.xxx$ [NC]

Din OR er ikke nødvendig, da der ikke kommer flere RewriteCond
Avatar billede mergelspir Seniormester
13. februar 2024 - 14:45 #2
ad #1,
- Har du lov til at lave rewrite på det webhotel?
Ja
- Muligvis er det nødvendigt med en linje først:  RewriteEngine on
De har jeg allerede.

Se venligst mine to linier i kontekst herunder.

Med hensyn til, hvordan man tester:
Er det ikke korrekt forstået, at jeg skal kunne se den redirectede adresse i Firefox?
Eller er der en anden måde, at teste det?


Options -Indexes

ExpiresActive On
ExpiresDefault A60
ExpiresByType image/gif A3600
ExpiresByType text/css A3600
ExpiresByType text/javascript A3600

<FilesMatch ".(js|css|html|htm|jsp|xml)$">
SetOutputFilter DEFLATE
</FilesMatch>

RewriteEngine on

RewriteCond %{HTTP_HOST} ^<brugernavn>.<webhotel>$ [NC,OR]
RewriteRule (.*)$ https://<mit domaine>/$1 [R=301,L]

RewriteBase /

RewriteRule ^([a-z]{2})/(.*)\.jsp/?$ app/$2.jsp?lang=$1 [QSA]
RewriteRule ^([a-z]{2})/servlet/(.*)/?$ app/servlet/$2 [QSA]
Avatar billede mergelspir Seniormester
13. februar 2024 - 14:56 #3
Ad #1)
Jeg har også prøvet med

RewriteCond %{HTTP_HOST} ^<brugernavn>\.<webhotel>$ [NC]
(tilføjet '\' førend '.', og fjernet 'OR')
Men det gør ingen forskel.
Avatar billede mergelspir Seniormester
13. februar 2024 - 15:11 #4
For at være helt sikker på, at jeg ikke har noget liggende i cache, downloadede jeg Opera-browseren, som jeg ikke tidligere har benyttet på den PC, jeg bruger lige nu.

Men jeg når jeg skriver <brugernavn>.<webhotel> får jeg stadig ikke den redirectede URL at se.

Selve indholdet af siden (bortset fra URL'en) er korrekt.
Avatar billede erikjacobsen Ekspert
13. februar 2024 - 15:13 #5
Jo, du skal kunne se den adresse, der redirectes til i browseren, og kun den.

Så derfor redirecter den ikke...

Jeg antager at dine 2 sidste RewriteRule virker, både på webhotel-adressen og på dit domæne.

Så er det lidt mystisk. Prøv eventuelt at gøre betingelsen simplere. Her behøver kun dit brugernavn matche et eller andet sted i host-navnet:

    RewriteCond %{HTTP_HOST} <brugernavn> [NC]
Avatar billede mergelspir Seniormester
13. februar 2024 - 16:02 #6
Det er lidt okkult!!

Da det er et domaine jeg bruger som test, kan jeg tillade mig lidt af hvert.

Jeg har nu kun følgende tre linier i .htaccess.filen:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^<brugernavn>$ [NC]
RewriteRule (.*)$ https://<mit domaine>/$1 [R=301,L]

Men de to nederste RewriteRules (se indlæg #2), som nu er fjernet, virker stadigvæk, i.e. som om de stadig var der.

Jeg har kikket hele min filstruktur på testserveren igennem, og der er kun denne ene .htaccess-fil. Og den ligger i ROOT-kataloget, så det ser korrekt ud.

Kan den mon være cached et eller andet sted?!?

Jeg benytter cloudflare som frontend, men det er vel irrellevant, da .htaccess-filen ligger på Tomcat serveren. OG... som jeg har forstået det så bliver .htaccess-filen læst hver evig eneste gang, der er en forespørgsel til Tomcat serveren.
Avatar billede erikjacobsen Ekspert
13. februar 2024 - 16:37 #7
Cloudflare cacher - du kan rydde cash på "Overview" under "Quick Actions"
"Purge Cache"  - og med fordel sætte den til "Development mode".

Din .htacces bliver først kigget på hvis Cloudflare beslutter sig for ikke at benytte sig af sin cache.
Avatar billede mergelspir Seniormester
13. februar 2024 - 17:50 #8
Jeg har nu prøvet at "Purge Cache" samt clear cache i min browser, men lige meget hjalp det.
Jeg er nu ved at løbe tør for ideer, så jeg har nu oprettet en ticket til webhotellets support-afdeling.
Jeg har spurgt om
1) hvad "HTTP_HOST" er
2) bedt dem bekræfte at .htaccess-filen ligger i det korrekte katalog
Så får vi se, hvad de svarer.
Avatar billede erikjacobsen Ekspert
13. februar 2024 - 18:25 #9
Er det Tomcat ...?  Skal den selv klare det? Jeg faldt over:  https://serverfault.com/questions/1002722/how-to-rewrite-www-to-non-www-in-tomcat-server
Avatar billede mergelspir Seniormester
14. februar 2024 - 18:10 #10
Her er så svaret fra supportafdelingen.
Der er tre måder at redirecte på fra min Tomcat-server-installation
1) Cloudflare
2) Tomcat config-file
3) Apache .htaccess file
(Og det vidste jeg godt, men læs videre herunder)

Cloudflare:
Jeg benytter godt nok Cloudflare, men primært til at cache for at forbedre brugeroplevelsen.

Tomcat config-file:
Jeg har på et tidspunkt kopieret de sidste linier i min .htaccess-fil over i Tomcat's config-file og siden glemt alt om det.

Apache .htaccess file:
Det er den fil, som jeg troede, at jeg brugte, men som support skriver:
"Proxy rules take precedence so in case root URL '/' is proxied there will be no attempt of reading .htaccess"
og videre:
"I can see <mit domaine>'s root URL is proxied to Tomcat so you may remove the proxy setting and play with htaccess."

Så det er altså forklaringen på, hvorfor mine ændringer i .htaccess-filen ingen effekt har.

Så nu vil jeg undersøge, hvad "Best Practice" og "fordele og ulemper" ved de tre metoder er, men det er jo et helt andet spørgsmål.

Imens vil jeg - indtil videre - flytte min redirect over i Tomcat's config fil.

Så svaret på mit oprindelige spørgemål: "Hvordan kan man teste at redirect 301 fungerer?" er nok at bede om hjælp, når man løber tør for ideer. Jeg giver derfor kommentar #9 fra Erik Jakobsen som løsning, og Erik har været en stor hjælp. TAK!
Avatar billede mergelspir Seniormester
14. februar 2024 - 18:15 #11
Jeg har ændret løsning fra #9 til #5, da det bedste svar på det oprindelige spørgsmål er: "du skal kunne se den adresse, der redirectes til i browseren, og kun den."
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester