Mod rewrite: Skillnad mellan sidversioner

Från Wiki.linux.se
Hoppa till navigering Hoppa till sök
Rad 69: Rad 69:
==== Testa om det fungera ====
==== Testa om det fungera ====


==== Skapa följande index.php file : ====
Skapa följande index.php fil :
<code><?php</code>
<code><?php
 
print $_SERVER['REQUEST_URI'];
<code>print $_SERVER['REQUEST_URI'];</code>
?></code>
 
<code>?></code>


Du skall nu kunna surfa till [http://exempel.linux.se http://exempel.linux.se/dkdkdkdk]  
Du skall nu kunna surfa till [http://exempel.linux.se http://exempel.linux.se/dkdkdkdk]  


Om allt är rätt gjort, så skall du se den sträng du skriven efter domänen i URL:en.
Om allt är rätt gjort, så skall du se den sträng du skriven efter domänen i URL:en.

Versionen från 8 mars 2023 kl. 08.56

SAMMANFATTNING:

Mod_rewrite-modulen använder en regelbaserad omskrivningsmotor, baserad på en PCRE regular-expression parser, för att skriva om begärda URL:er i farten. Som standard mappar mod_rewrite en URL till en filsystemsökväg. Den kan dock också användas för att omdirigera en URL till en annan URL, eller för att anropa en intern proxyhämtning.

mod_rewrite ger ett flexibelt och kraftfullt sätt att manipulera webbadresser med ett obegränsat antal regler. Varje regel kan ha ett obegränsat antal bifogade regelvillkor, så att du kan skriva om URL baserat på servervariabler, miljövariabler, HTTP-rubriker eller tidsstämplar.

mod_rewrite fungerar på den fullständiga URL-sökvägen, inklusive sektionen med sökvägsinformation. En omskrivningsregel kan anropas i httpd.conf eller i .htaccess. Sökvägen som genereras av en omskrivningsregel kan inkludera en frågesträng, eller kan leda till intern underbearbetning, omdirigering av extern begäran eller intern proxygenomströmning.


EXEMPEL:

Du har en hemsida som hetter exempel.linux.se , istället för att ha URL som blir https://exempel.linux.se?x=3&y=3 så vill du har länkar som ser ut som https://exempel.linux.se/visa/debian

För du uppnå måste du slå på mod_rewrite det gör du genom att skriva

root@testmakin:/# a2enmod rewrite

Notera att t.ex Ubuntu 22.04 LTS har denna påslagen som standard.

I det bibliotek som du skall mod_rewrite funktionen behöver du lägga följande .htaccess fil :

.htaccess

<IfModule mod_rewrite.c>

   RewriteEngine On

   RewriteBase /

   RewriteCond %{REQUEST_FILENAME} !-f

   RewriteCond %{REQUEST_FILENAME} !-d

   RewriteRule . /index.php [L]

</IfModule>

apache2.conf

Du behöver modifera filen apache2.conf , den ligger på ubuntu 22.04 vid /etc/apache2

redigera filen med favorit editor, t.ex pico


Redigera följande stycke i felen

<Directory />

        Options Indexes FollowSymLinks MultiViews

        AllowOverride all

        Require all granted

        allow from all

</Directory>


Spara filen

Skriv sedan

root@testmaskin:/etc/apache2# service apache2 restart


Går nu till det bibliotek där du har din hemsida och där du spara filen .htaccess

Testa om det fungera

Skapa följande index.php fil : <?php print $_SERVER['REQUEST_URI']; ?>

Du skall nu kunna surfa till http://exempel.linux.se/dkdkdkdk

Om allt är rätt gjort, så skall du se den sträng du skriven efter domänen i URL:en.