Di vê gotarê de, em ê prensîbên bingehîn ên karanîna pelê .htaccess, ku ji bo zêdekirina SEO-ê girîng e, bikolin. Ev pel ji hêla motorên lêgerînê ve navnîşkirina rast a rûpelan piştrast dike. Em ê fêr bibin ka meriv çawa beralîkirinan birêve dibe, ewlehiyê mîheng dike û performansê zêde dike. Wekî din, em ê şîretan bidin ka meriv çawa vê pelê serbixwe mîheng bike.
Çima .htaccess Pêdivî ye
Pelê .htaccess ji bo pêşdebirên webê yên li ser serverên Apache wekî celebek "kontrola dûr" tevdigere. Ew ji bo sererastkirina pîvanên cihêreng û birêvebirina tevgera malperek amûrên hêsan pêşkêşî dike. Dema ku rasterast gihîştina pelên mîhengê yên sereke yên serverê ne berdest be (wek ku pirî caran di mêvandariya virtual de ye, mînakî), .htaccess dibe amûrek kêrhatî ji bo çêkirina guhertinên pêwîst.
Htaccess bi gelemperî di peldanka root ya malpera we de an jî di wan peldankan de ye ku veavakirina taybetî hewce ye. Mînakî, heke hûn WordPress bikar bînin, veavakirin dikare bi pêveka Yoast SEO, ya ku me di gotarê de li ser nîqaş kir, were kirin. Veavakirina robots.txt. Di rewşên din de, bes e ku hûn biçin peldanka pêwîst û pelê .htaccess-a heyî biguherînin, an jî heke hêj nehatibe çêkirin wê biafirînin.
Veavakirina Pelê .htaccess
301 Beralîkirina htaccess
Beralîkirina 301 di pelê .htaccess de dikare wekî beralîkirina daîmî ya li ser malperek were şibandin. Ew motorên lêgerînê û gerokan agahdar dike ku rûpel naha bi domdarî li navnîşanek nû ye û nûvekirina nîşangiran û navnîşkirinê pêşniyar dike. Beralîkirinek wusa bi gelemperî dema ku rûpelek tê barkirin an jêbirin tê bikar anîn da ku rêza xwe di encamên lêgerînê de biparêze û mêvanan beralî cîhê nû bike.
Ji bo çalakkirina beralîkirinan, divê hûn di pelê .htaccess de emrê têkildar çalak bikin:
RewriteEngine on
Piştî wê, hûn dikarin forma herî hêsan a verastkirinê mîheng bikin:
<IfModule mod_rewrite.c>
RewriteEngine On
Redirect 301 /old-page.html /new-page.html
</IfModule>
Beralîkirinek bi vî rengî bi kar tîne Redirect Permanent dîrektîf wiha xuya dike:
<IfModule mod_rewrite.c>
RewriteEngine On
Redirect permanent /old-page.html http://new-domain.ru/new-page.html
</IfModule>
Ev rêgezên beralîkirinê yên herî hêsan in ku têne mîheng kirin. Werin em veavakirinek bihesibînin ku cûreyên din, pêşkeftî yên beralîkirinê bi kar tîne mod_rewrite module:
<IfModule mod_rewrite.c>
RewriteEngine On
# Redirecting from one page to another
RewriteRule ^old-page.html$ http://www.example.com/new-page.html [R=301,L]
# Redirecting all traffic from one domain to another
RewriteCond %{HTTP_HOST} ^oldsite.com$ [OR]
RewriteCond %{HTTP_HOST} ^www.oldsite.com$
RewriteRule ^(.*)$ http://www.newsite.com/$1 [R=301,L]
# Redirecting from www to non-www (or vice versa)
RewriteCond %{HTTP_HOST} ^www.example.com$
RewriteRule ^(.*)$ http://example.com/$1 [R=301,L]
# Redirecting from HTTP to HTTPS
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://www.example.com/$1 [R=301,L]
# Redirecting from one subdomain to another
RewriteCond %{HTTP_HOST} ^subdomain1.example.com$
RewriteRule ^(.*)$ http://subdomain2.example.com/$1 [R=301,L]
</IfModule>
Beralîkirina 302 .htaccess, ku veguheztina demkî destnîşan dike, pir kêm caran tê dîtin. Li vir mînakek mîhengek weha heye:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^old-page.html$ /new-page.html [R=302,L]
</IfModule>
Derhêneriya ErrorDocument
Ev mîheng dihêle hûn kontrol bikin ka bikarhêner gava ku xeletiyên HTTP li ser malpera we çê dibin çi dibîne. Li şûna peyama xeletiya standard, hûn dikarin rûpela xwe nîşan bidin, ku dê ji bo serdanker bêtir agahdar be û ji wan re bibe alîkar ku fêm bikin ka çi qewimî. Tenê ji bo karanîna vê hevoksaziyê bişopînin:
ErrorDocument <error_code> <URL_page>
Bo nimûne,
ErrorDocument 404 /errors/not_found.html
Wateya wê dema ku a 404 çewtî çêdibe, rûpel li /errors/not_found.html dê were vekirin. URLên bêkêmasî bi heman rengî têne destnîşan kirin:
ErrorDocument 500 http://example.com/errors/server_error.html
Ev nimûne nîşana nîşan dide server_error.html rûpel li http://example.com/errors/ di bûyera a 500 şaşî.
Înkarkirina Gihîştina Pelrêçek Malperê
Pelê .htaccess ferman heye Ji hemûyan înkar bikin, ku dibe alîkar ku gihandina hin peldank an pelên li ser servera weya webê red bikin. Heke hûn dixwazin agahdariya taybet an pelên girîng ji mêvanên malperê veşêrin da ku ewlehiya daneyê bicîh bikin ev dikare kêrhatî be.
Ji bo neçalakkirina navnîşê (dîtina hemî pelrêçikên berdest), hûn hewce ne ku rêzê lê zêde bikin:
Options -Indexes
Mînakek astengkirina gihîştina pelrêçek taybetî wiha xuya dike:
<Directory /path_to_your_directory>
Order Deny,Allow
Deny from all
</Directory>
Bi heman rengî, hûn dikarin gihîştina pelek yekane red bikin:
<Files "file.php">
Order Deny,Allow
Deny from all
</Files>
An jî ji bo çend pelan ji hêla dirêjkirinê ve:
<FilesMatch "\.(txt|log|bak)$"> # Select the desired extensions, in the example: txt, log, bak
Order Deny,Allow
Deny from all
</FilesMatch>
Astengkirina Gihîştina bi IP-yê
Astengkirina gihîştina bi IP-yê di pelê .htaccess de rêbazek e ku dihêle hûn gihîştina malpera xwe ji bo navnîşanên IP-ya taybetî an komên wan sînordar bikin. Heke hûn dixwazin rê li ber gihîştina malpera xwe an beşên wê yên taybetî ji bo hin kesan an botên nedilxwaz bigirin ev dikare kêrhatî be.
Astengkirina navnîşana IP-ya yekane bi fermanê tête kirin:
Order Deny,Allow
Allow from all
Deny from 11.22.33.44
Astengkirina çend navnîşanên IP-yê bi heman rengî bi dubarekirina "" tê kirin.Înkar ji" bi navnîşanên pêwîst re rêz bikin.
Ji bo astengkirina hejmarek navnîşanên IP-ê:
Order Deny,Allow
Allow from all
Deny from 11.11.11.11/24
Ji bo ku hûn tenê ji bo IP-yên taybetî destûr bidin, kodê lê zêde bikin:
Order Deny,Allow
Deny from all
Allow from 11.22.33.44
Ji bo redkirina bêkêmasî ya gihîştinê, rêwerzê bikar bînin Ji hemûyan înkar bikin, û ji bo astengkirina navnîşanên bi maskê, diyar bikin Ji 11.22 de red bikin.
Ko, 11.22 navnîşana IP-ê ye berrû.
Astengkirina Ziyaretvanan ji hêla Bikarhêner-Agent
Astengkirina bikarhêneran ji hêla Bikarhêner-Agent ve di pelê .htaccess de rêgezek e ku meriv dikare xwe bigihîne servera webê li gorî agahdariya geroka ku mêvan bikar tîne. Rêza Bikarhêner-Agent daneyên di derbarê geroka ku kesek bikar tîne da ku bi servera we re têkilî daynin, dihewîne, û bi saya vê agahiyê, hûn dikarin gihîştina hin bikarhêneran sînordar bikin.
Rêya herî gelemperî ya astengkirina ji hêla Bikarhêner-Agent ve tê bikar anîn mod_rewrite:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} ^Bot1 [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^Bot2 [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^Bot3 [NC]
RewriteRule ^.*$ - [F,L]
</IfModule>
Di vê mînakê de:
- RewriteCond %{HTTP_USER_AGENT} ji bo kontrolkirina rêzika Bikarhêner-Agent tê bikar anîn.
- ^Bot1, ^Bot2, ^Bot3 mînakên rêzikên Bikarhêner-Agent in ku em dixwazin asteng bikin. Guherkerên NC destnîşan dikin ku berhevok divê nehesas be.
- RewriteRule ^.*$ - [F,L] heke yek ji şertên RewriteCond pêk were li ser daxwazê tê sepandin. Ew bersivek bi koda statûya Qedexe 403 (F) dişîne û qaîdeyên pêvajoyê (L) rawestîne.
Caching li htaccess
Veavakirina cachê bi pelê .htaccess re dibe alîkar ku malpera we bileztir bike û ew ji bikarhêneran re zûtir bar dike. Ew bi vî rengî dixebite: hin pelan, wekî wêne, şêwazên CSS, û nivîsarên JavaScript, piştî barkirina yekem di cache geroka bikarhêner de têne hilanîn. Naha gerok dikare van pelan ji cache bikar bîne, li şûna ku her gava ku bikarhêner serdana rûpelek dike, wan ji serverê ji nû ve bar bike. Ev dema barkirinê kêm dike û performansa malperê çêtir dike.
Mînakek bifikirin:
# Enable caching for images for 1 month
<FilesMatch "\.(jpg|jpeg|png|gif|svg)$">
Header set Cache-Control "max-age=2592000, public"
</FilesMatch>
# Enable caching for CSS and JavaScript for 1 week
<FilesMatch "\.(css|js)$">
Header set Cache-Control "max-age=604800, public"
</FilesMatch>
Ji bo çavkaniyên ku pir caran têne nûve kirin, ji hêla din ve, pêdivî ye ku cachingê neçalak bike:
# Excluding caching for HTML pages and XML files
<FilesMatch "\.(html|xml)$">
Header set Cache-Control "no-cache, no-store, must-revalidate"
Header set Pragma "no-cache"
Header set Expires "0"
</FilesMatch>
Optimîzekirina Performansa Malperê
Ew mod_deflate û mod_gzip modulên di Apache de alîkariya berhevkirina agahdariya ku server dişîne cîhazên bikarhêneran. Ev pelan bi mezinahî piçûktir dike, ku di encamê de barkirina rûpelê bileztir dike. Lêbelê, girîng e ku ji bîr mekin ku piştgirî û veavakirina van modulan dibe ku li gorî servera we cûda bibe.
Mînaka bikaranîna mod_deflate module:
<IfModule mod_deflate.c>
# Compressing text file types
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript
AddOutputFilterByType DEFLATE application/x-httpd-php
AddOutputFilterByType DEFLATE application/x-httpd-fastphp
AddOutputFilterByType DEFLATE image/svg+xml
</IfModule>
Mînak ji bo mod_gzip:
<IfModule mod_gzip.c>
mod_gzip_on Yes
mod_gzip_dechunk Yes
mod_gzip_item_include file .(html?|txt|css|js|php|pl)$ # Enabling compression for files with extensions .html, .txt, .css, .js, .php, .pl
mod_gzip_item_include mime ^application/x-javascript.* # Enabling compression for MIME types starting with application/x-javascript
mod_gzip_item_include mime ^text/.* # Enabling compression for MIME types starting with text/
mod_gzip_item_exclude mime ^image/.* # Excluding from compression MIME types starting with image/
mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.* # Excluding already compressed data (responses with the Content-Encoding: gzip header)
</IfModule>
Me rêwerzên ku herî zêde têne bikar anîn nîqaş kirin. Hûn dikarin xwe bi hemî kapasîteyên pelê di nav de nas bikin belgeyên fermî.
Meriv çawa fonksiyona pelê .htaccess kontrol dike
Ji bo kontrol bikin ka pelê weya .htaccess li ser malperê dixebite, hûn dikarin van gavan pêk bînin:
- Bi qestî pelê .htaccess bi xeletiyek biguherînin. Di bersivê de, server divê xeletiyek bide. Ev rêbaz destnîşan dike ka operasyona pelê bi gelemperî li ser serverê tê sepandin.
- Karbidestiya guhertinên taybetî yên ku we çêkiriye kontrol bikin. Mînakî, li yek ji pîvanan verastkirinek piçûk bikin û hebûna guhertinan binirxînin.
- Ger guhertin bi bersiva serverê re têkildar in, koda statûya rûpelê kontrol bikin. Meriv çawa vê yekê dike, me berê di gotarê de diyar kir Kodên Çewtiya HTTP: navnîşek bêkêmasî ya xeletiyên serverê.
- Binêre têketinên serverê. Ew hemî xeletiyên têkildarî operasyona pelê .htaccess nîşan didin.
- Bi karanîna karûbar an amûrên serhêl ceribandinê bikin.
Girîng e ku meriv fam bike ku ji bo kontrolkirina fonksiyona pelê .htaccess, ne hewce ye ku hûn hemî gavan bi yekcarî bikin. Bes e ku meriv ji navnîşê rêbaza herî guncan hilbijêrin û bikar bînin.
Xelasî
Veavakirina pelê .htaccess di xweşbînkirin û parastina servera Apache ya we de gavek girîng e. Me lêkolîn kir ku ev pel çawa alîkariya birêvebirina beralîkirinan, berhevkirina naverokê û misogerkirina ewlehiyê dike. Gava ku hûn bi .htaccess re dixebitin, hûn amûrek hêzdar ji bo çêtirkirina performans û fonksiyona malperan bi dest dixin.