קובץ .htaccess הוא אחד הקבצים הכי חזקים בשרת שלכם — ואחד הכי לא מובנים. רוב בעלי האתרים אפילו לא יודעים שהוא קיים, ומי שכן יודע — לרוב נוגע בו רק כשמשהו נשבר. במאמר הזה אני, כבונה אתרים שעובד מ-2017, חולק את הקובץ המלא שאני מטמיע באתרי וורדפרס, עם 17 כללים מדויקים שכל אחד מהם פותר בעיה אמיתית. כולל הקוד עצמו, מתי להוסיף אותו, ואיפה אני ראיתי שזה שובר אתרים.
מה זה .htaccess בכלל ולמה כדאי להבין אותו
קובץ .htaccess הוא קובץ הגדרות של שרת Apache — השרת שמריץ את רוב אתרי הוורדפרס בעולם. הוא יושב בתיקייה הראשית של האתר (לצד wp-config.php) ומגדיר איך השרת מתנהג עם כל בקשה שמגיעה אליו: redirects, אבטחה, ביצועים, ניהול קבצים, חסימות.
היופי בקובץ הזה: הוא עובד לפני שוורדפרס בכלל מתחיל לרוץ. כלומר, אם אני חוסם בוט ב-.htaccess, השרת בכלל לא מעמיס את PHP בשבילו — חיסכון אדיר במשאבים. וזה גם הסיבה שטעות פה יכולה להפיל לכם את האתר תוך שנייה.
אזהרה קריטית לפני שאתם מתחילים: תמיד תעשו גיבוי של .htaccess לפני כל שינוי. תורידו עותק למחשב, או תפתחו את הקובץ במנהל הקבצים ותעתיקו את התוכן לקובץ טקסט בצד. אם משהו נשבר — תחזירו את הגרסה הישנה ב-30 שניות והאתר יחזור לעבוד. בלי גיבוי, אתם עלולים למצוא את עצמכם עם White Screen of Death בלי דרך חזרה.
איפה מוצאים את הקובץ ואיך עורכים אותו
הקובץ נמצא בתיקייה הראשית של האתר (public_html או www, תלוי בחברת האחסון שלכם). שימו לב — הוא קובץ נסתר (מתחיל בנקודה), אז במנהל הקבצים אתם צריכים להפעיל "Show Hidden Files" כדי לראות אותו.
אני אישית עורך אותו ב-3 דרכים:
- File Manager בפאנל האחסון (cPanel, Plesk, DirectAdmin) — הדרך הבטוחה ביותר כי אם משהו נשבר אני יכול לחזור מיד.
- FTP/SFTP דרך FileZilla — מתאים לעריכות גדולות יותר.
- תוסף Yoast SEO או RankMath — יש שם עורך .htaccess מובנה תחת Tools. אני לא ממליץ על זה לעריכות קריטיות כי אם תוסף נשבר אתם מאבדים גישה אליו.
המבנה הבסיסי של .htaccess בוורדפרס
כל אתר וורדפרס בא עם בלוק .htaccess בסיסי שוורדפרס בעצמו יוצר. הוא נראה ככה ואתם אל תיגעו בו לעולם:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
הבלוק הזה הוא מה שמאפשר לוורדפרס להציג URLs יפים (Pretty Permalinks). כל הכללים שאני אוסיף כאן הולכים מעל הבלוק הזה — בראש הקובץ, לפני BEGIN WordPress. למה? כי השרת קורא את הקובץ מלמעלה למטה, ואני רוצה שכללי אבטחה ו-redirects ירוצו לפני שוורדפרס בכלל מתחיל לעבוד.
17 הכללים שאני מטמיע בכל אתר וורדפרס
מכאן והלאה — כל כלל מקבל סעיף משלו עם הקוד המוכן להעתקה והסבר מתי וכמה הוא חשוב. שימו לב: לא כל הכללים מתאימים לכל אתר. תקראו את ההסבר שלפני הקוד ותחליטו אם זה רלוונטי אצלכם. אני אישית מטמיע את כולם ברירת מחדל, חוץ מהמקרים שאני אציין במפורש.
1. כפיית HTTPS על כל האתר
חובה לכל אתר ב-2026. זה הכלל הראשון שאני מטמיע. הוא מעביר אוטומטית כל מי שמגיע ב-HTTP לגרסת HTTPS. גוגל דורש את זה כתנאי לדירוג, וכל הדפדפנים המודרניים מציגים אזהרת "Not Secure" באתרים ללא SSL.
למה לא להסתפק בתוסף Really Simple SSL? כי תוסף עושה את ההפניה ברמת PHP — אחרי שהאתר טעון. ב-.htaccess זה קורה ברמת השרת, לפני שוורדפרס בכלל מתחיל לרוץ. יותר מהיר, יותר אמין, חוסך משאבים.
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
</IfModule>
איפה נכשלים בזה: מתקינים את התוסף הנ"ל וגם מוסיפים את הכלל ב-.htaccess. אז יש כפילות — שתי ההפניות רצות ויוצרות לולאה. אם אתם מוסיפים את הקוד הזה, תכבו את ההפניה בתוסף (או תסירו אותו לגמרי).
2. כפיית www או הסרת www (לבחירתכם)
מומלץ מאוד. גוגל רואה את www.yoursite.com ואת yoursite.com כשני אתרים שונים. אם אתם לא מאחדים אותם — אתם מפצלים את ה-SEO לשתי גרסאות. אני תמיד מאחד לגרסה אחת. הבחירה ביניהן לא משנה ל-SEO — היא רק צריכה להיות עקבית.
אני אישית עובד עם גרסה ללא www כי היא קצרה יותר ונראית מודרנית יותר. אבל אם האתר שלכם כבר מדורג עם www — אל תחליפו.
גרסה ללא www (האהובה עליי):
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^ https://%1%{REQUEST_URI} [R=301,L]
</IfModule>
גרסה עם www:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^ https://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>
3. הגנה על wp-config.php
קריטי לאבטחה. wp-config.php הוא הקובץ שמכיל את פרטי החיבור למסד הנתונים שלכם — שם משתמש, סיסמה, הכל. אם מישהו מצליח לקרוא אותו, האתר שלכם נגמר. ברירת המחדל של וורדפרס מספיק טובה, אבל אני מוסיף שכבת הגנה נוספת.
<Files wp-config.php>
Order Allow,Deny
Deny from all
</Files>
למה זה חשוב: ראיתי אתרים שבגלל הגדרות שרת שגויות, wp-config.php היה ניתן לצפייה כקובץ טקסט פתוח דרך הדפדפן. הקוד הזה מבטיח שגם אם משהו השתבש בהגדרות — הקובץ לא נגיש. שכבה שנייה של ביטחון.
4. חסימת xmlrpc.php
מומלץ מאוד לרוב האתרים. xmlrpc.php הוא קובץ ישן שמאפשר תקשורת חיצונית עם וורדפרס (יישומי מובייל, pingbacks). הבעיה: הוא יעד מספר 1 להתקפות Brute Force ו-DDoS. רוב האתרים בכלל לא משתמשים בו.
<Files xmlrpc.php>
Order Allow,Deny
Deny from all
</Files>
מתי לא לחסום: אם אתם מנהלים את האתר דרך אפליקציית WordPress למובייל, או אם יש לכם תוסף Jetpack פעיל — תצטרכו את xmlrpc.php. במקרים האלה, במקום לחסום לחלוטין, אפשר לחסום רק לפי IP — אבל זה כבר נושא למאמר נפרד.
5. הסתרת גרסת PHP ושרת
מומלץ. ברירת המחדל של רוב השרתים מציגה לכל מי ששואל איזו גרסת PHP אתם מריצים, איזו גרסת Apache, ועוד פרטים שהאקרים יכולים להשתמש בהם. אני מסתיר את כל זה.
ServerSignature Off
<IfModule mod_headers.c>
Header unset X-Powered-By
Header always unset X-Powered-By
</IfModule>
למה זה חשוב: אם בוט סורק אתרים שמריצים PHP 7.4 (שאיננה נתמכת יותר ויש בה פגיעויות ידועות) — הוא ינסה לתקוף אתכם רק אם הוא יודע שאתם מריצים את הגרסה הזאת. אם הוא לא יודע — הוא ילך הלאה.
6. חסימת גלישה בתיקיות (Directory Browsing)
חובה. אם השרת מאופשר לכך, מישהו שיכנס ל-yoursite.com/wp-content/uploads/2025/ עלול לראות רשימה של כל הקבצים בתיקייה. זה מסוכן — חושף תמונות וקבצים שאתם לא רוצים שיהיו ציבוריים.
Options -Indexes
מהניסיון שלי: זה כלל שבכל אתר חדש שאני מקבל לתחזוקה — אני בודק אם הוא מוטמע. ברוב המקרים, חברות אחסון מוסיפות את זה כברירת מחדל, אבל לא תמיד. שורה אחת — שיפור עצום באבטחה.
7. הגנה על קובץ .htaccess עצמו
חובה. נשמע מוזר, אבל .htaccess יכול להגן על עצמו. הוא מבטיח שאף אחד לא יוכל להוריד אותו דרך הדפדפן ולקרוא את כל ההגדרות שלכם.
<Files .htaccess>
Order Allow,Deny
Deny from all
</Files>
8. חסימת ביצוע PHP בתיקיית uploads
קריטי לאבטחה. תיקיית wp-content/uploads היא המקום היחיד בוורדפרס שמשתמשים יכולים להעלות אליו קבצים. ההאקרים יודעים את זה ולכן מנסים להעלות לשם קבצי PHP זדוניים. הכלל הזה מבטיח שגם אם הם הצליחו להעלות — הקובץ לא ירוץ.
תיצרו קובץ .htaccess חדש בתוך wp-content/uploads (לא בתיקייה הראשית!) עם התוכן הבא:
<Files *.php>
deny from all
</Files>
למה זה הצלה: ראיתי אתרים שנפרצו בדיוק ככה — האקר העלה קובץ PHP דרך טופס פגיע, ניגש אליו דרך הדפדפן, וקיבל גישה מלאה לשרת. עם הכלל הזה — אפילו אם הם מצליחים להעלות, הקובץ לא ירוץ והנזק נמנע.
9. הפעלת Gzip Compression
חיוני לביצועים. Gzip דוחס את הקבצים שהשרת שולח לדפדפן — לפעמים עד 70% פחות נפח. זה אומר אתר שנטען הרבה יותר מהר, ציון Core Web Vitals טוב יותר, ופחות תעבורה.
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE text/javascript
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/json
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/x-font-ttf
AddOutputFilterByType DEFLATE font/opentype
AddOutputFilterByType DEFLATE image/svg+xml
</IfModule>
איך לבדוק שזה עובד: אחרי שהוספתם, תיכנסו ל-GiftOfSpeed Gzip Test ותכניסו את כתובת האתר. אם רואים "Gzip is enabled" — מצוין. אם לא — אולי חברת האחסון שלכם לא תומכת ב-mod_deflate (נדיר היום).
10. Browser Caching – אחסון במטמון של הדפדפן
חיוני לביצועים. כשגולש נכנס לאתר בפעם הראשונה, הדפדפן מוריד את כל הקבצים: תמונות, CSS, JS. הכלל הזה אומר לדפדפן "תשמור את הקבצים האלה אצלך לזמן מסוים". בפעם הבאה שהגולש חוזר, הדפדפן לא מוריד שוב — האתר נטען מיד.
<IfModule mod_expires.c>
ExpiresActive On
ExpiresDefault "access plus 1 month"
# תמונות - שנה
ExpiresByType image/jpg "access plus 1 year"
ExpiresByType image/jpeg "access plus 1 year"
ExpiresByType image/gif "access plus 1 year"
ExpiresByType image/png "access plus 1 year"
ExpiresByType image/webp "access plus 1 year"
ExpiresByType image/svg+xml "access plus 1 year"
ExpiresByType image/x-icon "access plus 1 year"
# פונטים - שנה
ExpiresByType font/woff "access plus 1 year"
ExpiresByType font/woff2 "access plus 1 year"
ExpiresByType application/x-font-ttf "access plus 1 year"
ExpiresByType application/vnd.ms-fontobject "access plus 1 year"
# CSS ו-JS - חודש
ExpiresByType text/css "access plus 1 month"
ExpiresByType application/javascript "access plus 1 month"
ExpiresByType text/javascript "access plus 1 month"
# HTML - שעה (כדי שעדכונים יראו מהר)
ExpiresByType text/html "access plus 1 hour"
</IfModule>
השפעה ב-PageSpeed: אני רואה שיפור של 15-30 נקודות ב-PageSpeed Insights בקטגוריית Performance רק מהכלל הזה. אחד הכללים הכי משמעותיים בקובץ — וחלק בלתי נפרד מעבודה של מקדם אתרים מקצועי שמבין שמהירות אתר היא תנאי לדירוג בגוגל.
11. חסימת בוטים זדוניים לפי User-Agent
מומלץ. יש בוטים שלא מועילים לאתר — בוטים של גירוד תוכן, בוטים זדוניים, סורקי SEO של מתחרים שמעמיסים על השרת. אני חוסם את הנפוצים שבהם:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} (ahrefsbot|semrushbot|mj12bot|dotbot|rogerbot|exabot|sistrix|seokicks|gigabot|aiHitBot|riddler|trovitBot) [NC]
RewriteRule .* - [F,L]
</IfModule>
שימו לב: אני לא חוסם את GoogleBot, BingBot, YandexBot — אלה בוטים של מנועי חיפוש לגיטימיים. רק בוטים שמטרתם לגרד נתונים על האתר שלכם (לשימוש של מתחרים) או שגורמים עומס מיותר.
אם אתם משתמשים בכלי SEO: אם אתם בעצמכם משתמשים ב-Ahrefs או Semrush כדי לבדוק אתרים שלכם — אל תחסמו אותם! זה ייצור לכם נתונים חסרים בכלי שלכם. תחסמו רק אם אתם לא משתמשים בהם.
12. חסימת hotlinking של תמונות
מומלץ לאתרים עם תוכן ויזואלי כבד. Hotlinking זה כשאתר אחר משתמש בתמונה שלכם ישירות ב-URL שלכם — כלומר הם משבצים את התמונה אצלם, אבל היא נטענת מהשרת שלכם. אתם משלמים על התעבורה. הכלל הזה חוסם את זה.
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^https?://(www\.)?yossimizrachi\.co\.il [NC]
RewriteCond %{HTTP_REFERER} !^https?://(www\.)?google\. [NC]
RewriteCond %{HTTP_REFERER} !^https?://(www\.)?facebook\. [NC]
RewriteRule \.(jpg|jpeg|png|gif|webp|svg)$ - [F]
</IfModule>
שימו לב להחליף את yossimizrachi.co.il בדומיין שלכם. את google ו-facebook אני מאפשר כי הם משתמשים בתמונות לתצוגה מקדימה ב-search results וברשתות חברתיות. אם תחסמו אותם — התמונות שלכם לא יופיעו בגוגל ובפייסבוק.
13. הגבלת גודל קבצי העלאה
שכבת אבטחה. אם יש לכם טפסים שמאפשרים העלאת קבצים, הכלל הזה מגביל את הגודל המקסימלי. מונע מהאקרים להעלות קבצים ענקיים ולהפיל את השרת.
<IfModule mod_php7.c>
php_value upload_max_filesize 64M
php_value post_max_size 64M
php_value max_execution_time 300
php_value max_input_time 300
</IfModule>
איך לבחור את הגודל הנכון: אני שם 64M ברירת מחדל. לאתר רגיל זה מספיק. לאתר עם וידאו או קבצים כבדים — תעלו ל-128M או 256M. אבל לא יותר — זה פתח לבעיות.
14. הוספת כותרות אבטחה (Security Headers)
מומלץ מאוד. כותרות HTTP אבטחה שמגנות על הגולשים שלכם מסוגי התקפות שונים — XSS, Clickjacking, MIME sniffing. רוב האתרים בעברית לא מטמיעים את זה והם מאבדים ניקוד אבטחה בכלי בדיקה.
<IfModule mod_headers.c>
Header always set X-Frame-Options "SAMEORIGIN"
Header always set X-Content-Type-Options "nosniff"
Header always set X-XSS-Protection "1; mode=block"
Header always set Referrer-Policy "strict-origin-when-cross-origin"
Header always set Permissions-Policy "geolocation=(), microphone=(), camera=()"
</IfModule>
מה כל אחד עושה:
- X-Frame-Options — מונע מאתרים אחרים להציג את האתר שלכם ב-iframe (הגנה מ-Clickjacking).
- X-Content-Type-Options — מונע מהדפדפן "לנחש" את סוג הקובץ ולהריץ אותו לא נכון.
- X-XSS-Protection — שכבה נוספת נגד התקפות Cross-Site Scripting.
- Referrer-Policy — שולט במה שנשלח לאתרים אחרים כשגולש לוחץ על קישור (פרטיות).
- Permissions-Policy — חוסם גישה למיקרופון, מצלמה, GPS באתר שלכם (אלא אם תאפשרו במפורש).
אחרי שהטמעתם, תיכנסו ל-securityheaders.com ותבדקו את הציון. אני שואף ל-A או יותר בכל אתר.
15. עמודי שגיאה מותאמים אישית
שיפור חוויית משתמש. במקום שגולש שמגיע לעמוד שלא קיים יראה את שגיאת 404 הגנרית של השרת, אני מפנה אותו לעמוד 404 שעיצבתי בוורדפרס — עם חיפוש, ניווט, ולינקים לעמודים פופולריים.
ErrorDocument 400 /404
ErrorDocument 401 /404
ErrorDocument 403 /404
ErrorDocument 404 /404
ErrorDocument 500 /500
מה זה דורש: שיהיו לכם בוורדפרס עמודים בכתובות /404 ו-/500. וורדפרס בדרך כלל יוצר את 404 אוטומטית דרך התבנית, אבל 500 צריך ליצור ידנית.
16. דחיית טעינת תוכן זמני (HTTP/2 Push – הוצא משימוש) או Preload
למתקדמים בלבד. ב-2026 אפשר להגיד לדפדפן "תטעין את הקובץ הזה במקביל לעמוד" — לפני שהוא בכלל יודע שהוא צריך אותו. שיפור משמעותי בזמן טעינה.
<IfModule mod_headers.c>
<FilesMatch "\.(html|php)$">
Header add Link "</wp-content/themes/your-theme/style.css>; rel=preload; as=style"
Header add Link "</wp-content/themes/your-theme/fonts/main.woff2>; rel=preload; as=font; crossorigin"
</FilesMatch>
</IfModule>
שימו לב: זה לא מתאים לכל אתר. רק קבצים קריטיים שכל עמוד צריך — CSS ראשי, פונט עיקרי. אם תפריזו, תקבלו את ההפך — איטיות.
17. redirects של 301 — שינוי כתובות ישנות
חיוני בכל אתר. כשאתם משנים מבנה URLs, מוחקים עמוד ישן, או מעבירים את האתר מדומיין לדומיין — אתם חייבים ליצור 301 redirect. אחרת כל הקישורים החיצוניים לעמוד הישן (וכל הדירוגים בגוגל) הולכים לפח.
זה הפורמט הבסיסי לעמוד בודד:
Redirect 301 /old-page/ https://yoursite.com/new-page/
וזו הדרך לעשות redirect של תיקייה שלמה (למשל אם שיניתם /blog/ ל-/articles/):
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^blog/(.*)$ /articles/$1 [R=301,L]
</IfModule>
איפה אני רואה הכי הרבה טעויות: אנשים משכחים לעשות redirect של עמודים ישנים אחרי שינוי מבנה. שבועיים אחר כך הם תוהים למה הם איבדו 40% מהתעבורה האורגנית. תמיד לפני שמשנים URL — תכנו את ה-redirects.
הקובץ המלא שאני מטמיע בכל אתר חדש
כדי לחסוך לכם זמן הרכבה, הנה הקובץ המלא שאני מדביק בכל .htaccess של אתר וורדפרס חדש שאני בונה. תעתיקו, תחליפו את "yoursite.co.il" בדומיין שלכם, ותעלו לשרת. רק אל תשכחו לעשות גיבוי קודם!
# ============================================
# yossimizrachi.co.il - .htaccess
# ============================================
# 1. כפיית HTTPS
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
</IfModule>
# 2. הסרת www
<IfModule mod_rewrite.c>
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^ https://%1%{REQUEST_URI} [R=301,L]
</IfModule>
# 3. הגנה על wp-config.php
<Files wp-config.php>
Order Allow,Deny
Deny from all
</Files>
# 4. חסימת xmlrpc.php
<Files xmlrpc.php>
Order Allow,Deny
Deny from all
</Files>
# 5. הסתרת מידע שרת
ServerSignature Off
<IfModule mod_headers.c>
Header unset X-Powered-By
Header always unset X-Powered-By
</IfModule>
# 6. חסימת directory browsing
Options -Indexes
# 7. הגנה על .htaccess
<Files .htaccess>
Order Allow,Deny
Deny from all
</Files>
# 8. Gzip Compression
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript
AddOutputFilterByType DEFLATE application/javascript application/x-javascript application/xml
AddOutputFilterByType DEFLATE application/rss+xml application/json application/xhtml+xml
AddOutputFilterByType DEFLATE image/svg+xml
</IfModule>
# 9. Browser Caching
<IfModule mod_expires.c>
ExpiresActive On
ExpiresDefault "access plus 1 month"
ExpiresByType image/jpg "access plus 1 year"
ExpiresByType image/jpeg "access plus 1 year"
ExpiresByType image/png "access plus 1 year"
ExpiresByType image/webp "access plus 1 year"
ExpiresByType image/svg+xml "access plus 1 year"
ExpiresByType font/woff2 "access plus 1 year"
ExpiresByType text/css "access plus 1 month"
ExpiresByType application/javascript "access plus 1 month"
ExpiresByType text/html "access plus 1 hour"
</IfModule>
# 10. כותרות אבטחה
<IfModule mod_headers.c>
Header always set X-Frame-Options "SAMEORIGIN"
Header always set X-Content-Type-Options "nosniff"
Header always set X-XSS-Protection "1; mode=block"
Header always set Referrer-Policy "strict-origin-when-cross-origin"
</IfModule>
# 11. חסימת בוטים זדוניים
<IfModule mod_rewrite.c>
RewriteCond %{HTTP_USER_AGENT} (ahrefsbot|semrushbot|mj12bot|dotbot|rogerbot) [NC]
RewriteRule .* - [F,L]
</IfModule>
# ============================================
# WordPress הבלוק של - אל תיגעו!
# ============================================
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
7 הטעויות הכי נפוצות שאני רואה ב-.htaccess
אחרי שראיתי מאות אתרים, יש דפוסים שחוזרים בכל פעם. אם אתם הולכים להטמיע משהו מהמאמר הזה — תקראו את החלק הזה קודם:
- שכחה לעשות גיבוי לפני שינויים — הטעות המס' 1. תמיד תורידו עותק לוקאלי לפני כל שינוי. אם משהו נשבר, יש לכם 30 שניות לחזור לגרסה הקודמת לפני שזה הופך לסיוט.
- הטמעה של אותו כלל פעמיים — כשמתקינים תוסף שמשנה את .htaccess (כמו Yoast SEO או WP Rocket) ואז גם מוסיפים את הכלל ידנית — אתם יוצרים קונפליקטים. תבדקו תמיד מה כבר קיים בקובץ.
- שינוי הבלוק של WordPress עצמו — הבלוק שבין BEGIN WordPress ל-END WordPress הוא של וורדפרס. אם תשנו אותו, וורדפרס עשוי לדרוס את השינויים. כל הכללים המותאמים שלכם מחוץ לבלוק הזה, מעליו.
- חסימה גורפת של בוטים — חסמתי פעם בטעות את GoogleBot באתר של לקוח. תוך 3 ימים ראינו ירידה של 60% בתעבורה האורגנית. תמיד תבדקו את רשימת ה-User Agents פעמיים לפני שאתם חוסמים.
- redirects לולאתיים — קורה כשמפנים מ-A ל-B, אבל יש גם הפניה מ-B ל-A במקום אחר. הדפדפן מקבל "ERR_TOO_MANY_REDIRECTS" והאתר לא נטען. אם זה קורה — תבדקו גם את הגדרות ההפניה בוורדפרס עצמו, לא רק ב-.htaccess.
- Permissions לא נכונים על הקובץ — .htaccess צריך להיות עם הרשאות 644 (לא 777, לא 755). אם הוא 777 — שרתים מאובטחים יסרבו לקרוא אותו וכל הכללים שלכם לא יעבדו. אם תקבלו "500 Internal Server Error" אחרי שינוי — תבדקו permissions ראשון.
- שימוש בטאבים במקום רווחים — Apache לפעמים רגיש לטאבים. אם העתקתם קוד ממקור חיצוני וקיבלתם שגיאה — תפתחו את הקובץ ב-Notepad++ או VS Code ותחליפו טאבים ברווחים.
איך אני בודק שהכל עובד אחרי השינוי
אחרי כל שינוי ב-.htaccess אני מבצע סדרת בדיקות שלוקחת 5 דקות אבל חוסכת ימים של בעיות:
- גלישה לאתר בגלישה רגילה — האתר נטען? אין שגיאת 500? אם כן — תחזירו את הגיבוי מיד.
- בדיקת HTTPS — תיכנסו ל-http://yoursite.com (בלי s). זה מפנה אוטומטית ל-https?
- בדיקת www — תיכנסו ל-www.yoursite.com. זה מפנה לגרסה ללא www (או להפך, לפי מה שבחרתם)?
- בדיקת אזורי האדמין — wp-admin נכנס בלי בעיות? תהליך ה-login עובד?
- בדיקת קבצים נסתרים — נסו לגשת ל-yoursite.com/wp-config.php — אמור להחזיר 403 Forbidden.
- בדיקת PageSpeed — תיכנסו ל-PageSpeed Insights ותריצו את האתר. אמורים לראות שיפור בציון Performance, במיוחד מ-Browser Caching ו-Gzip.
- בדיקת Security Headers — securityheaders.com. אמורים לקבל ציון A או יותר.
סיכום
קובץ .htaccess הוא כלי עוצמתי שיכול לשפר את האתר שלכם בשלושה תחומים בו זמנית: אבטחה, ביצועים ו-SEO. השקעת חצי שעה בהטמעה נכונה שלו שווה לפעמים יותר מהתקנת 5 תוספים שונים — כי הכל קורה ברמת השרת, מהר ויעיל.
החוקים שאני חלקתי כאן הם לא תיאוריה — אלה החוקים שאני באמת מטמיע בכל אתר שאני בונה, מאומתים ב-8 שנות עבודה. אבל זכרו: תמיד גיבוי לפני שינוי. .htaccess הוא כלי עוצמתי, וכל שורה לא נכונה יכולה להפיל את האתר. כשעובדים נכון — הוא הופך אותו לבטוח, מהיר ועמיד יותר.
שאלה אחרונה ששווה לשאול את עצמכם: מתי בפעם האחרונה פתחתם את ה-.htaccess של האתר שלכם? אם התשובה היא "אף פעם" — היום זה היום.
צריכים עזרה?
אם הגעתם עד לכאן, סימן שאתם רציניים לגבי האתר שלכם. אם אתם רוצים שאני אבדוק את ה-.htaccess שלכם, אטפל בקובץ ברמה מקצועית או אעזור לכם עם כל היבט אחר באתר — אני כאן.
אני עובד מ-2017 ומציע גם שירותי קידום אתרים אורגני לעסקים שרוצים להגיע למקומות הראשונים בגוגל. בין אם זה אתר חדש, שדרוג של אתר קיים, או תיקון בעיות טכניות כמו אלה שדיברנו עליהן — אשמח לעזור.