Hostwinds Tutorials

Zoekresultaten voor:


Inhoudsopgave


Wat is het .htaccess -bestand?
Het .htaccess -bestand inschakelen
Stap 1: Open virtueel hostbestand
Stap 2: Voeg 'ALLAGRIDE ALLE' Richtlijn toe
Stap 3: Bestand opslaan
Stap 4: Start Apache opnieuw
Een .htaccess -bestand maken
Een enkele URL omleiden met behulp van 'omleidingsrichtlijn'
Als u de ene URL naar een andere URL op hetzelfde domein wilt omleiden:
Als u een URL wilt omleiden naar één op een ander domein:
Bulk -URL -omleiding met behulp van 'Rewriterule' richtlijn
Controleer of 'mod_rewrite is ingeschakeld
Voor Red Hat-gebaseerde systemen (CentOS, Fedora, RHEL):
Voor Debian-gebaseerde systemen (Ubuntu, Debian, Linux Mint):
Hoe je 'mod_rewrite' inschakelt
Voor Red Hat-gebaseerde systemen (CentOS, Fedora, RHEL):
Voor Debian-gebaseerde systemen (Ubuntu, Debian, Linux Mint):
URL's omleiden op basis van een gemeenschappelijk patroon
Een volledig domein omleiden naar een nieuw domein
Force HTTPS met 'Rewriterule' richtlijn
Dwingen https op al het verkeer
Dwingen https op een specifiek domein
Het toevoegen en verwijderen van 'www' voorvoegsel

Hoe je omleidingen kunt maken met .htaccess -bestand

Wat is het .htaccess -bestand?
Het .htaccess -bestand inschakelen
Stap 1: Open virtueel hostbestand
Stap 2: Voeg 'ALLAGRIDE ALLE' Richtlijn toe
Stap 3: Bestand opslaan
Stap 4: Start Apache opnieuw
Een .htaccess -bestand maken
Een enkele URL omleiden met behulp van 'omleidingsrichtlijn'
Als u de ene URL naar een andere URL op hetzelfde domein wilt omleiden:
Als u een URL wilt omleiden naar één op een ander domein:
Bulk -URL -omleiding met behulp van 'Rewriterule' richtlijn
Controleer of 'mod_rewrite is ingeschakeld
Voor Red Hat-gebaseerde systemen (CentOS, Fedora, RHEL):
Voor Debian-gebaseerde systemen (Ubuntu, Debian, Linux Mint):
Hoe je 'mod_rewrite' inschakelt
Voor Red Hat-gebaseerde systemen (CentOS, Fedora, RHEL):
Voor Debian-gebaseerde systemen (Ubuntu, Debian, Linux Mint):
URL's omleiden op basis van een gemeenschappelijk patroon
Een volledig domein omleiden naar een nieuw domein
Force HTTPS met 'Rewriterule' richtlijn
Dwingen https op al het verkeer
Dwingen https op een specifiek domein
Het toevoegen en verwijderen van 'www' voorvoegsel

Wat is het .htaccess -bestand?

Het .htaccess-bestand is een configuratiebestand dat voornamelijk wordt gebruikt door Apache-webservers om verschillende aspecten van websitegedrag op per-directory te regelen.Hiermee kunt u de serverbrede instellingen overschrijven en specifieke configuraties toepassen op afzonderlijke mappen zonder het configuratiebestand van de hoofdserver direct te wijzigen.

Het .htaccess -bestand valt op als een opmerkelijk krachtig hulpmiddel bij het efficiënt beheren van verschillende backend -website -taken.Een van de meest voorkomende taken is het implementeren van omleidingen, waar U kunt omleidingen uitvoeren op het niveau van individuele URL's, over hele domeinen, en zelfs op het HTTP -protocolniveau.

In deze zelfstudie zullen we de talloze opties bespreken. Htaccess -aanbiedingen voor omleiding, u door de verschillende implementaties doorlopen, zodat u uw URL's effectief met vertrouwen kunt omleiden.

Het .htaccess -bestand inschakelen

Het inschakelen van het .htaccess -bestand vertelt Apache Web Servers om richtlijnen erin te herkennen en te accepteren die erin zijn geschreven, waardoor u standaard serverconfiguraties op het mapniveau wordt overschreven.

Als je een ... hebt gedeelde hosting Account, uw hosting -serviceprovider zou het al moeten hebben ingeschakeld, dus u hoeft alleen maar een bestand te maken.

Stap 1: Open virtueel hostbestand

Gebruik van uw favoriete teksteditor (we zullen gebruiken nano Voor dit voorbeeld) Open het configuratiebestand van uw website met de volgende opdracht:

Voor Red Hat-gebaseerde systemen (CentOS, Fedora, RHEL):

sudo nano /etc/httpd/conf/httpd.conf

Voor Debian-gebaseerde systemen (Debian, Ubuntu, Linux Mint):

sudo nano /etc/apache2/sites-available/domain_name.conf

Het virtualhost -bestandsblok ziet er zoiets uit:

<VirtualHost *:80>
    ServerAdmin webmaster@example.com
    ServerName domain_name
    ServerAlias www.domain_name
    DocumentRoot /var/www/domain_name/public_html
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Notitie: Afhankelijk van hoe uw websitebestanden zijn georganiseerd, de 'Documentroot' kan afwijken.Er zijn twee veel voorkomende opstellingen:

  • '/var/www/domein_name/public_html' (hierboven) geeft aan dat uw websitebestanden zich in een submap hebben genaamd 'public_html ' binnen de 'domeinnaam'Directory, een structuur die gewoonlijk wordt gebruikt om openbaar gerichte bestanden van andere sitegerelateerde bestanden te scheiden.Als u het .htaccess -bestand in deze map inschakelt, heeft alleen invloed op de bestanden binnen 'public_html'.
  • Voorbeeld:
/var/www/domain_name/
├── public_html/
│   ├── index.html
│   ├── about.html
│   └── .htaccess
└── logs/
  • '/var/www/domein_name' geeft aan dat al uw websitebestanden zich rechtstreeks in de 'bevindendomeinnaam'Directory.Deze instelling betekent dat alle .htaccess-bestandsrichtlijnen in deze map op elk bestand (openbaar gerichte of niet) van toepassing zijn.
  • Voorbeeld:
/var/www/domain_name/
├── index.html
├── about.html
└── .htaccess

Hoewel beide geldig zijn, is het belangrijk om op de hoogte te zijn van welke sitebestanden u al dan niet door het .htaccess -bestand wilt worden beïnvloed.

Stap 2: Voeg 'ALLAGRIDE ALLE' Richtlijn toe

Binnen de Virtualhost Block Toevoeg het volgende Directory Content Block:

<VirtualHost *:80>  

<Directory /var/www/domain_name/public_html>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
</Directory>

</VirtualHost>

Deze richtlijn, specifiek 'Alles toestaan'Is wat u in staat stelt om .htaccess -richtlijnen toe te passen in alle websitebestanden in de gegeven directory.

Stap 3: Bestand opslaan

Nadat u het directoryblok hebt toegevoegd, slaat u het bestand op en sluit u het bestand.In nano kan dit worden gedaan door op te drukken Ctrl +X, vervolgens Y en drukken Invoeren.

Stap 4: Start Apache opnieuw

Voor de volledige inschrijving van het .htaccess -bestand moet u Apache opnieuw opstarten:

Voor Red Hat-gebaseerde systemen (CentOS, Fedora, RHEL):

sudo systemct1 restart httpd

Voor Debian-gebaseerde systemen (Debian, Ubuntu, Linux Mint):

sudo systemct1 restart apache2

Dat is het!Met Apache kunt u nu .htaccess -bestanden gebruiken in de gegeven map.

Een .htaccess -bestand maken

Met ondersteuning voor .htaccess ingeschakeld, kunnen we nu het .htaccess -bestand maken.

Om het .htaccess -bestand te maken, moet u naar de root-directory waar u het .htaccess -bestand hebt ingeschakeld.Met behulp van uw favoriete teksteditor (nogmaals, we gebruiken Nano) Voer de volgende opdracht in, vervangen 'domeinnaam'met uw domeinnaam.

Notitie: Verwijderen 'public_html'Als u het .htaccess -bestand niet in dat subdirectory hebt ingeschakeld.

sudo nano /var/www/html/domain_name/public_html/.htaccess

Je hebt nu een .htaccess -bestand gemaakt en kan beginnen met het opstellen van omleidingsrichtlijnen.

Een enkele URL omleiden met behulp van 'omleidingsrichtlijn'

De 'Directeren'Richtlijn is de meest eenvoudige optie voor eenvoudige 1-naar-1 omleidingen.Deze richtlijn kan worden gebruikt om URL's op hetzelfde domein of een ander domein om te leiden.De volgende richtlijnen werken voor elke 3xx statuscodes (301, 302, 307 en 308)

Als u de ene URL naar een andere URL op hetzelfde domein wilt omleiden:

Redirect 301 "/original_url_path" "/new_url_path"

Als u een URL wilt omleiden naar één op een ander domein:


Redirect 301 "/orignal_url_path" "https://new_domain.com/new_url_path"

Bulk -URL -omleiding met behulp van 'Rewriterule' richtlijn

De 'Herschrijver'Richtlijn stelt u in staat om aanvullende regels toe te voegen om omleidingen, zoals patroonaanpassing, toe te voegen door het gebruik van reguliere uitdrukkingen en voorwaarden.

Controleer of 'mod_rewrite is ingeschakeld

Om de 'herschrijver' te gebruiken, moeten we ervoor zorgen dat de module 'mod_rewrite' is ingeschakeld.

Voor Red Hat-gebaseerde systemen (CentOS, Fedora, RHEL):
httpd -M | grep rewrite
Voor Debian-gebaseerde systemen (Ubuntu, Debian, Linux Mint):
apache2ctl -M | grep rewrite

Als u de volgende uitvoer ziet, is de module 'Mod_rewrite' ingeschakeld

rewrite_module (shared)

Hoe je 'mod_rewrite' inschakelt

Voor Red Hat-gebaseerde systemen (CentOS, Fedora, RHEL):

Stap 1: Open het Apache -configuratiebestand (meestal 'httpd.conf' of 'apache2.conf'))

sudo nano /etc/httpd/conf/httpd.conf

Stap 2: Zorg ervoor dat de volgende regel niet is becommentarieerd (geen # in het begin).Als dat zo is, verwijdert u gewoon '#'

LoadModule rewrite_module modules/mod_rewrite.so

Stap 3: Start Apache opnieuw om wijzigingen toe te passen

sudo systemctl restart httpd
Voor Debian-gebaseerde systemen (Ubuntu, Debian, Linux Mint):

Stap 1: Schakel 'mod_rewrite' module in

sudo a2enmod rewrite

Stap 2: Start Apache opnieuw om wijzigingen toe te passen

sudo systemctl restart apache2

URL's omleiden op basis van een gemeenschappelijk patroon

Als u een gemeenschappelijk patroon hebt in uw oude URL's, zoals dezelfde submap (bijv. /Blog), kunt u reguliere expressies gebruiken om ze te matchen en om te leiden:

RewriteEngine On

RewriteRule ^old-section/(.*)$ http://www.example.com/new-section/$1 [R=301,L]

In dit voorbeeld is elke URL die begint met 'Oude sectie/' zal worden doorgestuurd naar 'Nieuwe sectie/' met hetzelfde achtervoegsel.

Een volledig domein omleiden naar een nieuw domein

De volgende richtlijn zal al het verkeer van 'omleiden'old-domain.com' naar 'new-domain.com, 'het Uri -pad bewaren.

RewriteEngine On

RewriteCond %{HTTP_HOST} ^old-domain\.com$ [NC]
RewriteRule ^(.*)$ http://www.new-domain.com/$1 [R=301,L]

Force HTTPS met 'Rewriterule' richtlijn

Wanneer u "HTTPS dwingt", betekent dit dat u alle inkomende HTTP -aanvragen van uw site omleidt naar de beveiligde HTTPS -versie.

Er zijn een paar manieren om HTTPS te dwingen met behulp van de richtlijn 'Rewriterule':

Dwingen https op al het verkeer

Wanneer u https op "Al het verkeer" dwingt, vertelt u de server om elk inkomend HTTP -verzoek om te leiden naar HTTPS, ongeacht het domein of subdomein.

RewriteEngine On

RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Deze methode van geforceerde HTTPS is ideaal voor servers die een enkel domein hosten.

Dwingen https op een specifiek domein

Wanneer u HTTPS op een specifiek domein dwingt, vertelt u de server om HTTP -aanvragen om te leiden naar HTTPS alleen voor dat specifieke domein (of subdomein).

RewriteEngine On

RewriteCond %{HTTP_HOST} ^(www\.)?specific-domain\.com$ [NC]
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Het dwingen van HTTPS met deze methode is met name handig bij het hosten van verschillende domeinen op een enkele server en u hoeft alleen een selectnummer te beveiligen.

Het toevoegen en verwijderen van 'www' voorvoegsel

U kunt ook het .htaccess -bestand gebruiken in combinatie met de 'revriterule' -richtlijn om' www 'voorvoegsel om te leiden.

Om 'www' voorvoegsel toe te voegen:

RewriteEngine On

RewriteCond %{HTTP_HOST} ^example\.com [NC]
RewriteRule ^(.*)$ https://www.example.com/$1 [L,R=301]

Om 'www' voorvoegsel te verwijderen:

RewriteEngine On

RewriteCond %{HTTP_HOST} ^www\.example\.com [NC]
RewriteRule ^(.*)$ https://example.com/$1 [L,R=301]

Geschreven door Hostwinds Team  /  juni- 3, 2024