Hostwinds Tutorials
Zoekresultaten voor:
Inhoudsopgave
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 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.
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/domain_name/
├── public_html/
│ ├── index.html
│ ├── about.html
│ └── .htaccess
└── logs/
/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.
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.
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.
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.
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.
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)
Redirect 301 "/original_url_path" "/new_url_path"
Redirect 301 "/orignal_url_path" "https://new_domain.com/new_url_path"
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.
Om de 'herschrijver' te gebruiken, moeten we ervoor zorgen dat de module 'mod_rewrite' is ingeschakeld.
httpd -M | grep rewrite
apache2ctl -M | grep rewrite
Als u de volgende uitvoer ziet, is de module 'Mod_rewrite' ingeschakeld
rewrite_module (shared)
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
Stap 1: Schakel 'mod_rewrite' module in
sudo a2enmod rewrite
Stap 2: Start Apache opnieuw om wijzigingen toe te passen
sudo systemctl restart apache2
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.
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]
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':
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.
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.
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