Niini nga artikulo, atong tukion ang sukaranang mga prinsipyo sa paggamit sa .htaccess file, nga hinungdanon alang sa pagpauswag sa SEO. Kini nga payl nagsiguro sa husto nga pag-indeks sa mga panid pinaagi sa mga search engine. Makakat-on kami unsaon pagdumala sa mga pag-redirect, pag-configure sa seguridad, ug pagpauswag sa performance. Dugang pa, maghatag kami mga tip kung giunsa ang pag-configure sa kini nga file nga independente.
Ngano nga gikinahanglan ang .htaccess
Ang .htaccess file naglihok isip usa ka matang sa "remote control" alang sa mga web developers sa Apache servers. Nagtanyag kini og dali nga mga himan alang sa pag-adjust sa lainlaing mga parameter ug pagdumala sa pamatasan sa usa ka website. Kung ang direktang pag-access sa mga nag-unang mga file sa pag-configure sa server dili magamit (sama sa kasagaran sa virtual nga pag-host, pananglitan), ang .htaccess mahimong usa ka mapuslanon nga himan alang sa paghimo sa kinahanglan nga mga pagbag-o.
Ang Htaccess kasagarang nahimutang sa root folder sa imong site o sa mga folder diin gikinahanglan ang espesyal nga pag-configure. Pananglitan, kon mogamit ka og WordPress, ang pag-configure mahimo pinaagi sa Yoast SEO plugin, nga atong gihisgutan sa artikulo bahin sa Pag-configure sa robots.txt . Sa ubang mga kaso, igo na ang pag-adto sa gikinahanglan nga folder ug pag-edit sa kasamtangang .htaccess file, o paghimo niini kon wala pa kini nahimo.
Pag-configure sa .htaccess File
301 I-redirect ang htaccess
Ang 301 nga redirect sa .htaccess nga file mahimong ikatandi sa usa ka permanente nga redirection sa usa ka website. Gipahibalo niini ang mga search engine ug mga browser nga ang panid permanente na karon nga nahimutang sa usa ka bag-ong adres ug nagsugyot sa pag-update sa mga bookmark ug pag-indeks. Ang ingon nga pag-redirect kasagarang gigamit kung ang usa ka panid gibalhin o gitangtang aron mapreserbar ang ranggo niini sa mga resulta sa pagpangita ug i-redirect ang mga bisita sa bag-ong lokasyon.
Aron ma-activate ang mga redirect, kinahanglan nimo nga i-enable ang katugbang nga command sa .htaccess file:
RewriteEngine on
Human niana, mahimo nimong i-configure ang pinakasimple nga porma sa redirection:
<IfModule mod_rewrite.c>
RewriteEngine On
Redirect 301 /old-page.html /new-page.html
</IfModule>
Ang susamang redirect gamit ang RedirectPermanent directive morag ingon ani:
<IfModule mod_rewrite.c>
RewriteEngine On
Redirect permanent /old-page.html http://new-domain.ru/new-page.html
</IfModule>
Kini ang pinakasayon nga mga pamaagi sa pag-redirect nga i-configure. Atong hisgotan ang usa ka configuration nga naggamit ug uban pa, mas abante nga mga klase sa pag-redirect gamit ang 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>
Ang 302 redirect .htaccess, nga nagpaila sa temporaryo nga relokasyon, dili kaayo kanunay masugatan. Ania ang usa ka pananglitan sa ingon nga setting:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^old-page.html$ /new-page.html [R=302,L]
</IfModule>
Direktiba ErrorDocument
Gitugotan ka niini nga setting nga makontrol kung unsa ang makita sa tiggamit kung adunay mga sayup sa HTTP nga mahitabo sa imong site. Imbis sa standard nga mensahe sa sayup, mahimo nimong ipakita ang imong kaugalingon nga panid, nga mahimong labi ka kasayuran alang sa bisita ug tabangan sila nga masabtan kung unsa ang nahitabo. Sunda lang kini nga syntax para magamit:
ErrorDocument <error_code> <URL_page>
Pananglitan,
ErrorDocument 404 /errors/not_found.html
Nagpasabot nga kon adunay 404 error nga mahitabo, ang panid sa /errors/not_found.html maablihan. Ang absolute URLs gipiho sa parehas nga paagi:
ErrorDocument 500 http://example.com/errors/server_error.html
Kini nga ehemplo nagpakita sa pagpakita sa panid nga server_error.html sa http://example.com/errors/ kon adunay 500 nga sayop.
Pagdumili sa Pag-access sa Direktoryo sa Site
Ang .htaccess file adunay sugo nga Deny from all , nga makatabang sa pag-deny sa pag-access sa pipila ka mga folder o file sa imong web server. Mahimo kini nga mapuslanon kung gusto nimo itago ang pribado nga impormasyon o hinungdanon nga mga file gikan sa mga bisita sa site aron masiguro ang seguridad sa datos.
Aron ma-disable ang paglista (pagtan-aw sa tanan nga magamit nga mga direktoryo), kinahanglan nimo nga idugang ang linya:
Options -Indexes
Ang usa ka pananglitan sa pagbabag sa pag-access sa usa ka piho nga direktoryo ingon niini:
<Directory /path_to_your_directory>
Order Deny,Allow
Deny from all
</Directory>
Sa susama, mahimo nimong ipanghimakak ang pag-access sa usa ka file:
<Files "file.php">
Order Deny,Allow
Deny from all
</Files>
O alang sa lainlaing mga file pinaagi sa extension:
<FilesMatch "\.(txt|log|bak)$"> # Select the desired extensions, in the example: txt, log, bak
Order Deny,Allow
Deny from all
</FilesMatch>
Pag-block sa Access pinaagi sa IP
Ang pagbabag sa pag-access pinaagi sa IP sa .htaccess nga file usa ka pamaagi nga nagtugot kanimo sa pagpugong sa pag-access sa imong website alang sa piho nga mga adres sa IP o ilang mga grupo. Mahimong mapuslanon kini kung gusto nimo mapugngan ang pag-access sa imong site o ang mga piho nga bahin niini alang sa pipila nga mga tawo o dili gusto nga mga bot.
Ang pagbabag sa usa ka IP address gihimo gamit ang mando:
Order Deny,Allow
Allow from all
Deny from 11.22.33.44
Ang pag-block sa daghang mga IP address gihimo sa parehas nga paagi pinaagi sa pagdoble sa linya nga " Deny from " uban sa gikinahanglan nga mga address.
Alang sa pag-ali sa usa ka lainlaing mga adres sa IP:
Order Deny,Allow
Allow from all
Deny from 11.11.11.11/24
Aron tugutan ang pag-access alang lamang sa piho nga mga IP, idugang ang code:
Order Deny,Allow
Deny from all
Allow from 11.22.33.44
Para sa kompletong pagdumili sa pag-access, gamita ang direktiba nga Deny from all , ug para sa pag-block sa mga address gamit ang mask, i-specify ang Deny gikan sa 11.22.
Diin, ang 11.22 mao ang IP address mask.
Pag-block sa mga Bisita pinaagi sa User-Agent
Ang pagbabag sa mga tiggamit pinaagi sa User-Agent sa .htaccess file usa ka paagi sa pagkontrol kung kinsa ang maka-access sa imong web server base sa impormasyon bahin sa browser nga gigamit sa bisita. Ang string sa User-Agent adunay mga datos bahin sa browser nga gigamit sa usa ka tawo aron makig-uban sa imong server, ug salamat sa kini nga kasayuran, mahimo nimong mapugngan ang pag-access sa pipila nga mga tiggamit.
Ang pinakakasagarang paagi sa pag-block gamit ang User-Agent mao ang paggamit sa 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>
Niini nga pananglitan:
- Ang RewriteCond %{HTTP_USER_AGENT} gigamit sa pagsusi sa User-Agent string.
- ^Bot1, ^Bot2, ^Bot3 mga pananglitan sa mga string sa User-Agent nga gusto namong babagan. Ang NC modifiers nagpakita nga ang pagtandi kinahanglan nga case-insensitive.
- RewriteRule ^.*$ - [F,L] magamit sa hangyo kon ang bisan unsa sa RewriteCond kondisyon matuman. Nagpadala kini og tubag nga adunay 403 Forbidden status code (F) ug mihunong sa pagproseso sa mga lagda (L).
Pag-cache sa htaccess
Ang pag-configure sa pag-cache pinaagi sa .htaccess nga file makatabang sa pagpadali sa imong site pinaagi sa paghimo niini nga mas paspas nga pagkarga alang sa mga tiggamit. Kini molihok sama niini: pipila ka mga file, sama sa mga imahe, estilo sa CSS, ug mga script sa JavaScript, gitipigan sa cache sa browser sa gumagamit pagkahuman sa una nga pagkarga. Karon ang browser makagamit niini nga mga file gikan sa cache, imbes nga i-reload kini gikan sa server sa matag higayon nga ang user mobisita sa usa ka panid. Kini makapakunhod sa oras sa pagkarga ug makapauswag sa performance sa site.
Tagda ang usa ka pananglitan:
# 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>
Alang sa mga kahinguhaan nga kanunay nga gi-update, sa laing bahin, kinahanglan nga i-disable ang caching:
# 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>
Pag-optimize sa Pagganap sa Site
Ang mod_deflate ug mod_gzip modules sa Apache makatabang sa pag-compress sa impormasyon nga ipadala sa server ngadto sa mga device sa mga tiggamit. Kini makapagamay sa gidak-on sa mga file, nga mopaspas sa pagkarga sa panid. Apan, importante nga hinumdoman nga ang suporta ug pag-configure niini nga mga module mahimong magkalahi depende sa imong server.
Ehemplo sa paggamit sa 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>
Ehemplo para sa 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>
Atong gihisgutan ang labing kasagarang gigamit nga mga direktiba. Mahimo nimong pamilyar ang tanan nga mga kapabilidad sa file sa opisyal nga dokumentasyon.
Unsaon Pagsusi sa Kalihokan sa .htaccess File
Aron masusi kung ang imong .htaccess nga file nagtrabaho sa site, mahimo nimo ang mosunod nga mga lakang:
- Tuyo nga usbon ang .htaccess file nga adunay sayup. Agig tubag, ang server kinahanglan maghatag usa ka sayup. Kini nga pamaagi nagpakita kung ang operasyon sa file kasagarang gigamit sa server.
- Susiha ang pagpaandar sa piho nga mga pagbag-o nga imong nahimo. Pananglitan, paghimo usa ka gamay nga pagbag-o sa usa sa mga parameter ug susihon ang presensya sa mga pagbag-o.
- Susiha ang status code sa panid kon ang mga kausaban may kalabotan sa tubag sa server. Sa unsa nga paagi sa pagbuhat niini, atong gihulagway sa artikulo HTTP Error Codes: usa ka kompletong listahan sa mga error sa server.
- Tan-awa ang mga log sa server. Gipakita nila ang tanan nga mga sayup nga may kalabutan sa operasyon sa .htaccess file.
- Pagpahigayon pagsulay gamit ang mga serbisyo sa online o mga himan.
Importante nga masabtan nga aron masusi ang gamit sa .htaccess file, dili nimo kinahanglan nga buhaton ang tanan nga mga lakang sa usa ka higayon. Igo na ang pagpili sa labing angay nga pamaagi gikan sa lista ug gamiton kini.
Panapos
Ang pag-configure sa .htaccess nga file usa ka importante nga lakang sa pag-optimize ug pagpanalipod sa imong Apache server. Among gisusi kung giunsa kini nga file makatabang sa pagdumala sa mga pag-redirect, pag-compress sa sulud, ug pagsiguro sa seguridad. Sa higayon nga makamao ka nga magtrabaho uban sa .htaccess, makaangkon ka og usa ka gamhanan nga himan alang sa pagpalambo sa performance ug functionality sa mga website.