فایل htaccess یکی از فایلهای بسیار مهم در سرور است که کار پیکربندی وبسرور را انجام میدهد. این فایل وظایفی مانند تعریف مسیرهای جدید به عنوان مسیرهای "Routing" و جلوگیری از دسترسی مستقیم به فایلهای اسکریپت، جلوگیری از باز بودن بعضی از پورتها و دسترسیها، مشخص کردن فایلهای مجاز و قابل اجرا در سرور و... برعهده دارد. این پیکربندی و تنظیمات، برای اجرای سیستمهای مدیریت محتوا نظیر وردپرس و لاراول بسیار مهم هستند. از این رو حذف شدن آنها باعث مشکلاتی در اجرای صحیح سیستمهای مدیریت محتوا میشود و مسیردهی آنها را دچار اختلال میکند. گاهی ممکن از به هر دلیلی این فایل حذف شود و در این حالت باید آن را دوباره ایجاد و جایگزین کنیم تا اجرای وبسایت با مشکل مواجه نشود. در این مقاله روشهای ایجاد و جایگزینی فایل htaccess پیشفرض وردپرس را شرح خواهیم داد.
وردپرس چیست؟ [سیستم مدیریت محتوا وردپرس]
htaccess چیست؟
قبل از اینکه کار را شروع کنیم، بد نیست با ساختار فایل htaccess آشنا شویم؛ زیرا باید بدانیم که این فایل مهم چگونه کار میکند و چه کدهایی را باید درون آن قرار دهیم. این فایل بسیار مشابه زبان برنامه نویسی است؛ کدهایی بسیار ساده اما مهم. این فایل در ایجاد معماری MVC در سیستمهای مدیریت محتوا، نقش مهمی را ایفا میکند و بیشتر مسیردهیهای "Routing" بر اساس تنظیمات htaccess عمل میکنند.
فایل htaccess چیست؟ آشنایی با کاربردهای این فایل و ساخت آن
همچنین در اصطلاح فنی به این فایل "directory-level configuration file" نیز گفته میشود. از وظایف مهم فایل htaccess میتوان به موارد زیر اشاره کرد:
-
امنیت: محدود کردن دسترسی به فایل ها و پوشه ها، جلوگیری از حملات هکری.
-
سئو: تنظیم URL های ساده شده، ریدایرکت 301.
-
عملکرد: بهینه سازی کش مرورگر، فشرده سازی gzip.
-
مدیریت: تنظیم صفحات خطا، فعال کردن رمز عبور برای پوشه ها.
-
ایجاد پیوندهای Routing: در وردپرس به آن پیوند یکتا گفته میشود. این پیوندها ساده سازی شدهاند و هم تجربه کاربری بسیار خوبی را ایجاد میکنند و هم برای بهبود وضعیت سئو در موتورهای جستجو بسیار مناسب تر هستند.
-
تنظیمات امنیتی: این تنظیمات شامل جلوگیری از دسترسی به بخشهای حساس هاست و فایلها میشود که از آپلود بدافزار توسط هکرها جلوگیری میکند. در وردپرس افزونههای امنیتی همچون All in One Security و iTheme Security این تنظیمات را بر روی وردپرس اعمال میکنند.
-
مدیریت ریدایرکت ها: یکی از عوامل مهم در سئو، مدیریت صفحات حذف شده و یا تغییر مسیر داده شده است؛ که به آن ریدایرکت 301 نیز گفته میشود. این تنظیمات توسط افزونههای سئو مانند Yoast SEO و RankMath در فایل ".htaccess" انجام میشود.
-
ریدایرکت سایت بدون www: در گذشته که اینترنت تازه راه اندازی شده بود، از نشانه گذاری www استفاده میشد که به معنی "World Wide Web" بود و عملاً به هیچ کاری نمیآمد و فقط طول آدرس را زیاد میکرد. در صورتی که هاست شما همچنان با زیردامنه www در دسترس باشد، با ایجاد یک ریدایرکت در فایل ".htaccess" میتوانید جلوی نمایش www را بگیرید تا کاربران هم به آدرس کوتاه و بدون www عادت کنند.
-
افزایش کارایی و سرعت بارگذاری: با پیکرندی صفحاتی که نیاز به پردازش ندارند به صفحات کش شده و اساتیک، میتوان سرعت بارگذاری را تا حد قابل توجهی بالا برد. البته این تنظیمات توسط افزونههایی مانند WP-Rocket و LightSpeed انجام میشود.
-
محدودیت دسترسی به IP های خاص: زمانی که از IP کشورها و یا کامپیوترهای مشکوک، به وبسایت شما درخواستهای مکرر مشابه حمله DDOS ارسال میشود، یکی از راهکارهای جلوگیری از ارسال این درخواستها، غیرفعال کردن IP در تنظیمات ".htaccess" است.
-
قرار دادن یک رمز عبور دلخواه بر روی دایرکتوریها: اگر بخواهید دسترسی به یک مسیر و یا دایرکتوری را محدود کنید، میتوانید با تنظیم کلمه عبور بر روی آن، از ورود کاربران غیرمجاز به آن مسیر جلوگیری کنید.
-
صفحات خطای سفارسی: برای مدیریت خطاهای سرور میتوانید صفحات طراحی شده و اختصاصی خود را با فرمت html ایجاد کنید و در صورتی که به هر دلیلی سرور با مشکلات رایج مانند 503 یا 404 روبرو شد، کاربر با یک طراحی جذاب مواجه شود و پیام دلخواه خود را برای ایجاد حس همراهی نمایش دهید.
-
عدم نمایش برخی فایل ها: میتوانید مشخص کنید که چه فایلها و فرمتی در سرور اجازه اجرای مستقیم را نداشته باشند.
در ادامه با کدهای مهم htaccess آشنا خواهیم شد:
1. فعال کردن mod_rewrite
این کد، موتور بازنویسی URL را فعال می کند که به شما امکان می دهد تا URL های خود را بصورت routing برای کاربران ساده تر و برای موتورهای جستجو بهینه تر کنید.
RewriteEngine On
2. تنظیم URL های Routing
این کد URL های مانند `example.com/about` را به `example.com/index.php?page=about` بازنویسی می کند.
RewriteRule ^([a-zA-Z0-9-]+)/?$ index.php?page=$1 [L]
3. ریدایرکت 301
این کد بازدیدکنندگان را از مسیر `example.com/old-page.html` به مسیر `example.com/new-page.html` هدایت می کند.
Redirect 301 /old-page.html /new-page.html
این کد توسط افزونههایی مانند Yoast SEO بصورت خودکار برای صفحات قدیمی و یا تغییر مسیر، ایجاد میشود.
4. فشرده سازی gzip
این کدها فایل های HTML، CSS، JavaScript، تصاویر و ... را فشرده می کند تا سرعت بارگیری صفحه شما افزایش یابد.
mod_gzip_on Yes
mod_gzip_dechunk Yes
mod_gzip_item_include file \.(html|htm|css|js|gif|png|jpg)$
5. فعال کردن رمز عبور برای پوشه ها
این کدها یک منطقه محدود با رمز عبور ایجاد می کنند.
AuthType Basic
AuthName "Restricted Area"
AuthUserFile /path/to/.htpasswd
Require valid-user
6. تنظیم صفحات خطا
ErrorDocument 404 /404.html
ErrorDocument 500 /500.html
این کدها صفحات سفارشی را برای خطاهای 404 (صفحه یافت نشد) و 500 (خطای داخلی سرور) نمایش می دهند.
نکته : این فقط یک لیست مختصری از کدهای htaccess است. برای اطلاعات بیشتر، می توانید به منابع زیر مراجعه کنید:
https://httpd.apache.org/docs/2.4/howto/htaccess.html
توجه داشته باشید که قبل از ویرایش فایل htaccess، حتماً از آن نسخه پشتیبان تهیه کنید. اشتباهات در این فایل می تواند باعث از کار افتادن وب سایت شما شود.
ایجاد فایل htaccess پیشفرض وردپرس
دو روش برای ایجاد فایل htaccess وجود دارد. اول ایجاد این فایل به کمک وردپرس و دوم ایجاد این فایل بصورت دستی.
1. در روش اول، از تنظیمات وردپرس گزینه "پیوندهای یکتا" را باز کنید و بر روی دکمه "ذخیره" کلیک کنید تا فایل htaccess مجدداً ایجاد شود.
2. در روش دوم، ابتدا از کنترلپنل و یا FTP وارد بخش "File Manager" شوید و سپس در مسیر "public_html" فایل ".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
نکات مهم
توجه داشته باشید که فایل ".htaccess" فاقد نام است و فقط عبارت "htaccess" به عنوان پسوند آن قرار داده میشود و وبسرور نیز تنظیمات پیکربندی را دقیقاً با نام ".htaccess" میشناسد. از آنجا که تنظیمات موجود در فایل ".htaccess" مهم هستند و بعضی از تنظیمات وردپرس را نیز شامل میشوند، بهتر است بصورت دورهای از آن نسخه پشتیبان تهیه کنید. البته اگر به صورت هفتگی و یا ماهانه از کل هاست خود نسخه پشتیبان تهیه میکنید، از این فایل در کنار دیگر فایلهای بصورت خودکار نسخه پشتیبان تهیه میشود. جالب است بدانید عبارت "htaccess" مخخف شده عبارت "Hypertext Access" است که به معنای "دسترسی توسط ابرمتن" است و در عمل پیکربندی دسترسیهای مختلف در وبسرور در آن مشخص میشود.