Avatar billede andrew Juniormester
15. januar 2025 - 20:23 Der er 5 kommentarer

Rewrite i .htaccess til Joomla 5

Hej,
Jeg har i Joomla 5 installeret OSMap til håndtering af mit sitemap. Adressen til mit sitemap er index.php?option=com_osmap&format=xml&id=1.

Jeg ønsker at fremvise sitemap via /sitemap.xml og har derfor indsat følgende i .htaccess:

RewriteCond %{REQUEST_URI} ^/sitemap.xml
RewriteRule .* index.php?option=com_osmap&format=xml&id=1 [L,QSA]


Jeg får dog en XML-side hvor der blot står at siden ikke blev fundet. Indsætter jeg den fulde URL i rewriterule så virker det, dog ikke som en rewrite men en forward - ergo siden viderestilles til komponenten.

Nogen der har oplevet tilsvarende?
Avatar billede Joomlakonsulenten Juniormester
16. januar 2025 - 10:07 #1
Hej Andrew,

Tag et kig på denne guide og se om den kan være en hjælp.

https://www.joomlashack.com/docs/osmap/start/

/Michael, Joomlakonsulenten
Avatar billede andrew Juniormester
16. januar 2025 - 10:28 #2
Hej Michael

Tak for dit svar. Det giver mig dog ikke nogen retning af en løsning. Kan du præcisere din reference?

På forhånd tak.

Vh Michael
Avatar billede NicoIversen Mester
16. januar 2025 - 22:08 #3
Hvis du gerne vil omdirigere anmodningen om /sitemap.xml til OSMap-komponenten i Joomla, men der er lidt forskel på, hvordan URL'en håndteres af din .htaccess-fil.

Når du bruger RewriteRule i .htaccess, er der forskel på, hvordan du gør det i forhold til at lave en omdirigering (redirect) og en intern omdirigering (rewrite). I dit tilfælde vil du gerne lave en intern omdirigering, så serveren selv håndterer anmodningen, uden at brugeren ser URL’en ændre sig.

Her er et par ting, du kan prøve for at få det til at virke korrekt:

Korriger RewriteRule: Når du skriver reglerne i .htaccess, skal du sikre dig, at den interne omdirigering bliver behandlet korrekt. I stedet for RewriteRule .* index.php?option=com_osmap&format=xml&id=1 [L,QSA], kan du prøve følgende:

apache
Kopiér
RewriteCond %{REQUEST_URI} ^/sitemap.xml$
RewriteRule ^sitemap.xml$ index.php?option=com_osmap&format=xml&id=1 [L,QSA]
Denne regel sørger for, at alle anmodninger om /sitemap.xml bliver omdirigeret internt til den ønskede URL med id=1 uden at brugeren bliver sendt til en ny adresse i browseren.

Kontroller .htaccess Placering: Sørg for, at din .htaccess-fil er placeret i roden af din Joomla-installation, og at ingen andre regler forstyrrer. Hvis din server bruger specifik konfiguration for .htaccess, kan du også kontrollere, om der er andre moduler eller regler, der kan konflikte.

Joomla URL-parameter håndtering: Hvis du oplever problemer med, at Joomla ikke behandler URL'en korrekt, kan det være en god idé at kontrollere, om SEF URL’er er aktiveret i Joomla. Hvis SEF (Search Engine Friendly) URLs er aktiveret, kan det påvirke måden, URL'en bliver fortolket på.

Fejlfinding: Hvis du stadig får fejl, kan du prøve at aktivere fejllogning i Joomla (under "Global Configuration" > "Server" > "Error Reporting") og kontrollere serverens fejllogger for mere information om, hvad der går galt.
Avatar billede andrew Juniormester
16. januar 2025 - 22:44 #4
Tak for svar.

Jeg får følgende fejl i Joomla, som til syneladende omhandler routing:

#0 /var/www/domain.dk/libraries/src/Application/SiteApplication.php(754): Joomla\CMS\Router\Router->parse(Object(Joomla\CMS\Uri\Uri), true) #1 /var/www/domain.dk/libraries/src/Application/SiteApplication.php(244): Joomla\CMS\Application\SiteApplication->route() #2 /var/www/domain.dk/libraries/src/Application/CMSApplication.php(306): Joomla\CMS\Application\SiteApplication->doExecute() #3 /var/www/domain.dk/includes/app.php(58): Joomla\CMS\Application\CMSApplication->execute() #4 /var/www/domain.dk/index.php(32): require_once('/var/www/domain....') #5 {main}
Avatar billede NicoIversen Mester
16. januar 2025 - 22:59 #5
1. Korriger RewriteRule
Den oprindelige RewriteRule, som du har brugt, kan forårsage problemer med, hvordan Joomla håndterer URL'en, især når SEF URL'er (Search Engine Friendly URLs) er aktiveret. Prøv at ændre din .htaccess-regel som følger:

apache
Kopiér
RewriteCond %{REQUEST_URI} ^/sitemap.xml$
RewriteRule ^sitemap.xml$ index.php?option=com_osmap&format=xml&id=1 [L,QSA]
Denne regel tjekker, om anmodningen er specifik for /sitemap.xml og omdirigerer den korrekt uden at ændre URL’en i browseren.

2. Deaktiver SEF URL'er midlertidigt
Hvis SEF URL'er er aktiveret i Joomla, kan de ændre, hvordan URL'erne bliver behandlet, hvilket kan være årsagen til, at routing-fejlen opstår. For at teste om dette er årsagen til problemet, kan du midlertidigt deaktivere SEF URL'er:

Gå til Global Configuration i Joomla.
Under Site-fanen, find SEO Settings.
Skru Search Engine Friendly URLs (SEF) til Nej.
Gem ændringerne.
Test derefter om omdirigeringen fungerer korrekt. Hvis det virker, kan du forsøge at finjustere din .htaccess-fil, når SEF URL'er er aktiveret.

3. Kontroller Joomla’s Routing og Fejlrapportering
Joomla’s fejl kan indikere et routing-problem, og det kan hjælpe at få mere detaljerede fejlmeddelelser. Du kan aktivere fejllogning for at få flere oplysninger om, hvad der går galt.

Gå til Global Configuration i Joomla.
Under Server-fanen, find Error Reporting og sæt det til Maximum.
Gem ændringerne og forsøg at tilgå din /sitemap.xml URL igen.
Check derefter logs-mappen på din server for at finde specifikke fejlmeddelelser, som kan give dig en bedre idé om, hvad der forårsager problemet.

4. Test uden .htaccess-regel
Prøv at fjerne eller kommentere din RewriteRule midlertidigt for at kontrollere, om der er andre server- eller Joomla-specifikke problemer, der forhindrer korrekt routing. Det kan hjælpe med at udelukke, om fejlen skyldes .htaccess-konfigurationen eller et andet problem i Joomla.

5. Kontroller for konflikter i .htaccess
Sørg for, at der ikke er andre .htaccess-regler, der kan konflikte med din nuværende konfiguration. Hvis du har andre regler i din .htaccess-fil, kan de muligvis overrule din sitemap-omdirigering. Prøv at placere din sitemap-omdirigering som den første regel i .htaccess-filen for at sikre, at den ikke bliver overskrevet af andre regler.

6. Prøv en alternativ tilgang: Omdirigering via Joomla-komponent
Hvis du stadig har problemer med at få .htaccess-reglen til at virke, kan du overveje at oprette en omdirigering direkte i Joomla's routing-system ved hjælp af en komponent som ReDJ eller en Joomla Redirect-plugin. Med disse værktøjer kan du oprette en 301-omdirigering direkte i Joomla uden at skulle bruge .htaccess.
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
Kategori
Kurser inden for grundlæggende programmering

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





White paper
Sikkerhed gjort enkelt: Beskyt din virksomhed direkte i browseren