با استفاده از فایلهای htaccess شما میتوانید بسیاری از جنبههای آپاچی (و انواع مختلف آن) را کنترل کنید. در این مقاله قصد داریم به سوال اچ تی اکسس چیست و چه کاربردی دارد بپردازیم. در ادامه همراه ما باشید تا هر آنچه که باید در مورد راه اندازی صفحات خطا (set up special error pages)، حفاظت از رمز عبور (password protect directories)، redirect و…بدانید.
نحوه استفاده از راهنما
این راهنما به عنوان یک منبع جامع برای استفاده کردن از .htaccess تهیه شده است. اگر شما در این موضوع تازهکار هستید شاید بهتر باشد از فصل اول شروع کنید – در زیر اصول پایهای .htaccess را مشاهده میکنید. .htaccess Basics بیایید قبل از اینکه به دستورات بپردازیم با برخی از اصول .htaccess آشنا شویم.
.htaccess چیست؟
فایل htaccess، پوشهی پیکربندی است که نحوه پاسخگویی وبسرور به درخواستهای مختلف را کنترل میکند و توسط چندین وبسرور پشتیبانی میشود، از جمله وبسرور معروف آپاچی که به وسیله اکثر ارائه دهندگان وب هاستینگ تجاری استفاده میشود. فایلهای htaccess در سطح یک دایرکتوری عمل میکنند، که به آنها امکان میدهد تنظیمات پیکربندی و کانفیگوریشن جهانی دایرکتیوها و دستورالعملهای .htaccess بالاتر در درخت دایرکتوری را نادیده بگیرند.
.htaccess چگونه استفاده میشود؟
برخی از کاربردهای رایج .htaccess شامل؛ هدایت URLها،امکان پذیر کردن محافظت از رمز عبور برای وبسایتها ( یا صفحات وبسایت)، نمایش صفحات خطای سفارشی ( مانند صفحه 404) و افزایش سئو از طریق سیاست trailing slash میباشند. در مورد اخیر مدیر وب ممکن است انتخاب کند که در انتهای هر URL در یک سایت به یک trailing slash احتیاج باشد یا نه.
علت نام گذاری .htaccess چیست؟
.htaccess، مخفف hypertext access میباشد. این نام گرفته شده از کاربرد اصلی این ابزار، کنترل دسترسی کاربر به برخی از فایلها بر اساس هر دایرکتوری،میباشد.
با استفاده از زیرمجموعه دایرکتیوهای تنظیمات آپاچی،.htaccess به یک ادمین سیستم اجازه داده است تا دسترسی به دایرکتوریهای جداگانه را با استفاده از نام کاربری و رمز عبور مشخص شده در یک فایل .htpasswd برای کاربران محدود کند.
در حالی که فایلهای htaccess هنوز برای این مورد استفاده میشوند، آنها همچنین برای موارد دیگری نیز استفاده میشوند که در این راهنما توضیح خواهیم داد.
فایل htaccess کجا قرار دارد؟
از لحاظ تئوری، هر پوشه (دایرکتوری) در سرور شما میتواند یک نمونه داشته باشد.
به طور کلی یک مورد در root folder وب شما وجود دارد. این پوشهای است که تمام محتویات وبسایت شما را دربر گرفته است و معمولا با برچسب و نام public_html یا www. نشان داده میشود. اگر یک دایرکتوری منفرد دارید که شامل چندین ساب دایرکتوری وبسایت است، ممولا یک فایل اچ تی اکسس در دایرکتوری ریشه اصلی (public_html) پیدا خواهید کرد. و همچنین یک عدد نیز در هر ساب دایرکتوری (/sitename) وجود دارد.
چرا نمیتوانم فایل htaccess خود را پیدا کنم؟
در بیشتر سیستمهای فایلی، فایلهایی که نام آنها با نقطه (.) شروع میشود، مخفی هستند. این بدان معنی است که معمولا قابل مشاهده نیستند.
ولی دسترسی به آنها سخت نیست. سرویس گیرنده FTP یا File Manager شما باید تنظیماتی برای نمایش فایلهای پنهان داشته باشد. این تنضیمات در برنامههای مختلف در مکانهای متفاوتی قرار دارند، اما به طور معمول در “Preferences”،”Settings” یا در “Folder Options” قرار گرفته است. گاهی ممکن است آن را در منو “View” پیدا کنید.
اگر فایل اچ تی اکسس نداشته باشم چه پیش میآید؟
اول از همه، از روشن بودن گزینه “Show Hidden Files” یا معادل آن مطمئن شوید. تا در صورت داشتن یکی از فایلهای اکسس پنهان مطلع شوید. اغلب فایلهای htaccess به طور خودکار ایجاد میشوند، بنابراین معمولا یک فایل وجود دارد. اما همیشه اینگونه نیست.
اگر هیچ فایلی وجود نداشته باشد، به راحتی میتوانید ایجاد کنید.
➢ یک فایل جدید را در plain text editor شروع کنید.
➢ آن را با فرمت ASCII (نه UTF-8 یا هر چیز دیگر) به عنوان .htaccess ذخیره کنید.
➢ مطمئن شوید که htaccess.txt یا مواردی از این قبیل نباشد. فایل باید فقط یک نام داشته باشد، .htaccess، بدون هیج پسوند فایل اضافی.
➢ آن را از طریق FTP یا File Manager مبتنی بر مرورگر خود در دایرکتوری مناسب آپلود کنید.
مدیریت خطا
استفاده از فایلهای اچ تی اکسس برای مشخص کردن ارور داکیومنتها بسیار ساده است. در واقع یکی از سادهترین کارهایی است که میتوان با استفاده از آنها انجام داد.
کد خطا یا error code چیست؟
هرگاه درخواستی به وبسرور داده شود، وب سرور در تلاش است تا به این درخواستها پاسخ دهد. گاهی از طریق ارسال داکیومنت (درموارد صفحات HTML) و یا از طریق دسترسی پیدا کردن به یک برنامه و برگرداندن اطلاعات خروجی( در موارد سیستمهای مدیریت محتوا و سایر برنامههای وب).
اگر در این میان مشکلی پیش بیاید، خطا یا اروری ایجاد میشود. انواع مختلفی از پیامهای خطا، ارور کدهای متفاوتی دارند. احتمالا با ارور 404 آشنا هستید، که هنگام یافت نشدن فایل رخ میدهد.
ارور کدهای زیادی وجود دارند که سرورها به کمک آنها میتوانند پاسخ دهند.
Client Request Errors
➢ 400 — Bad Request
➢ 401 — Authorization Required
➢ 402 — Payment Required (not used yet)
➢ 403 — Forbidden
➢ 404 — Not Found
➢ 405 — Method Not Allowed
➢ 406 — Not Acceptable (encoding)
➢ 407 — Proxy Authentication Required
➢ 408 — Request Timed Out
➢ 409 — Conflicting Request
➢ 410 — Gone
➢ 411 — Content Length Required
➢ 412 — Precondition Failed
➢ 413 — Request Entity Too Long
➢ 414 — Request URI Too Long
➢ 415 — Unsupported Media Type.
Server Errors
➢ 500 — Internal Server Error
➢ 501 — Not Implemented
➢ 502 — Bad Gateway
➢ 503 — Service Unavailable
➢ 504 — Gateway Timeout
➢ 505 — HTTP Version Not Supported.
رسیدگی پیشفرض خطا
اگر هیچگونه مدیریت خطایی را مشخص نکنید، سرور پیام را به مرورگر باز میگرداند و مرورگر یک پیام خطای عمومی به کاربر نشان میدهد. به طور معمول این شرایط ایدهآل نمیباشد.
مشخص کردن داکیومنت خطا
برای هر ارور کد که میخواهید مدیریت کنید یک داکیومنت HTML بسازید. نام این داکیومنتها را میتوانید هر چیزی بگذارید. سعی کنید اسمهایی که انتخاب میکنید برای شما یادآور هدف این داکیومنتها باشد، مانند 404 html یا not-found.html
سپس در فایل htaccess انتخاب کنید که کدام داکیومنت و فایل با کدام ارور استفاده شود.
- ErrorDocument 400 /errors/bad-request.html
- ErrorDocument 401 /errors/auth-reqd.html
- ErrorDocument 403 /errors/forbid.html
- ErrorDocument 404 /errors/not-found.html
- ErrorDocument 500 /errors/server-err.html
خطای 404 از آن دست ارورهایی است که میتواند به میزان قابل توجهی سایت شما را با کاهش کاربر مواجه کند. بدین منظور به شما پیشنهاد میکنیم برای رع این مشکل به مقالهی ما با عنوان رفع خطای 404 در وردپرس سری بزنید.)
گزینههای جایگزین .htaccess در مدیریت خطا
بسیاری از سیستمهای تولید محتوا مانند WordPress و Drupal و بسیاری از اپلیکیشنهای وب، روشهای خود را برای مدیریت کردن ارور کدها دارند.
محافظت از رمز عبور با .htaccess
هدف اصلی فایلهای htaccess محدود کردن دسترسی به برخی از دایرکتوریها به ازای هر کاربر بود ( از این رو آن را hypertext access نامیدند). پس اول به این وظیفه میپردازیم.
.htapasswd
نامهای کاربری (username) و رمزهای عبور (password) برای سیستمهای .htacccess در یک فایل به نام .htpasswd ذخیره میشوند.
هریک از آنها به صورت زیر و در یک خط ذخیره میشوند.
username:encryptedpassword
برای مثال:
johnsmith:F418zSM0k6tGI
مهم است که بدانید، پسورد ذخیره شده در فایل همان رمز عبور اصلی مورد استفاده برای ورود به سیستم نمیباشد، بلکه یک cryptographic hash از پسورد میباشد.
این بدان معناست که رمز عبور با الگوریتم رمزگذاری اجرا شده و در نتیجه ذخیره شده است. هنگامی که کاربر به سیستم وارد میشود رمز عبور کامل وارد شده و از همان الگوریتم عبور میکند. اگر ورود یکسان باشد، پسوردها مطابقت داشته و به کاربر اجازه دسترسی داده میشود.
ذخیره سازی رمزهای عبور از این طریق، آنها را امنتر میسازد. اگر کسی به فایل .htpasswd دسترسی پیدا کند، فقط پسورد هش شده و در هم آمیخته را میبیند، نه اصلی را. و هیچ راهی برای بازسازی نسخههای اصلی از درهم آمیخته وجود ندارد. این یک رمزگذاری یک طرفه میباشد.
از الگوریتمهای هشینگ مختلفی میتوان استفاده کرد.
الگوریتم های امن
از یکی از موارد زیر استفاده کنید.
➢ bcrypt- این امنترین روش الگوریتمی میباشد ولی همچنین کندترین نیز هست. توسط Nginx و آپاچی پشتیبانی میشود.
➢ md5 – این الگوریتمی است که به طور معمول توسط نسخههای فعلی آپاچی استفاده میشود. توسط Nginx پشتیبانی نمیشود.
الگوریتمهای ناامن
از این موارد استفاده نکنید.
➢ crypt() – از این الگوریتم پیشتر استفاده میشد. ولی امن نمیباشد.
➢ SHA و Salted SHA
ایجاد نامهای کاربری و رمزهای عبور در خط فرمانCommand Line
شما میتوانید یک فایل htaccess را ایجاد کرده و به آن مستقیما از خط فرمان یا ترمینال SSH پسورد و نام کاربری جفت شده را اضافه کنید.
فرمان و کمند رسیدگی به فایل .htpasswd به طور ساده htpasswd است.
برای ایجاد یک فایل .htpasswd جدید، از کمند و گزینه -c استفاده کنید. سپس مسیر(path) به دایرکتوری را تایپ کرده (نه URL،بلکه مسیر واقعی در سرور). همچنین میتوانید کاربری را که میخواهید اضافه کنید را در آن قرار دهید.
> htpasswd -c /usr/local/etc/.htpasswd johnsmith
این کار یک فایل .htpasswd جدید در دایرکتوری (/etc) ایجاد میکند، و نیز سابقهای برای کاربر johnsmith ثبت میکند. از شما رمز عبور خواسته خواهد شد، که آن نیز با استفاده از رمزگذاری md5 (md5 encryption) ذخیره شده است.
اگر در مکان مشخص شده، فایل .htpasswd از قبل وجود داشته باشد، فایل جدیدی ایجاد نخواهد شد و کاربر جدید به فایل موجود از قبل اضافه میشود.
اگر شما الگوریتم هشینگ bcrypt را ترجیح دهید، از گزینه -b باید استفاده کنید.
در هم سازی و هش کردن رمز عبور بدون خط فرمان اگر با استفاده کردن از خط فرمان یا ترمینال SSH احساس راحتی نمیکنید یا به هر دلیلی به آن دسترسی ندارید، میتوانید فایل .htpasswd را به راحتی ایجاد کرده و به وسیله یک plain text editor آن را پر کنید و سپس از طریق FTP یا File Manager آپلود کنید. اما پس از آن به دلیل اینکه کمند .htpasswd به پسوردها رسیدگی میکرد باید آنها را به نوع دیگری رمزگذاری کنید.
بسیاری از ابزارهای رمزگذاری به صورت آنلاین موجود میباشند. که احتمالا htpasswd generator در Aspirine.org بهترین گزینه میباشد. این روش گزینههای مختلفی برای ااگوریتمهای درهم سازی، هشینگ و تقویت پسورد به شما میدهد. و به راحتی میتوانید اطلاعات خروجی آن را در فایل .htpasswd خود کپی و پیست کنید.
فایل .htpasswd خود را کجا نگهداری کنید؟
نیازی به داشتن فایل .htpasswd جداگانه برای هر فایل htaccess نیست. در واقع، نباید داشته باشید. در شرایط عادی فقط باید یک فایل برای کل حساب وب هاستینگ یا سرور دایرکتوری اصلی داشته باشید.
فایل .htpasswd نباید در دایرکتوری باشد که دسترسی عموم به آن آزاد است ( نباید در public_html ،www. و یا هر ساب دایرکتوری دیگر یاشد). آن باید در پوشهای باشد که فقط برای خود سرور قابل دسترسی باشد.
چگونه .htpasswd را با .htaccess استفاده کنیم؟
هر دایرکتوری میتواند فایل htaccess مخصوص خود را به همراه مجموعه کاربران خاص خود که مجاز به دسترسی به آن هستند را داشته باشد.
اگر میخواهید هر کسی ( از جمله کاربران غیر ورودی به سیستم) به دایرکتوری و فایلهای آن دسترسی داشته باشند، نیاز به انجام کاری ندارید. چرا که به طور پیش فرض اینگونه میباشد.
برای محدودسازی دسترسی، موارد زیر را به فایل htaccess اضافه کنید:
AuthUserFile /usr/local/etc/.htpasswd
AuthName “Name of Secure Area”
AuthType Basic
<Limit GET POST>
require valid-user
</Limit>
خط اول مسیر و نام فایل را برای لیست نام کاربری و رومزعبور تعیین میکند. خط دوم نامی برای منطقه امن مشخص میکند. خط سوم احراز هویت پایه (basic authentication) را مشخص میکند، چیزی که معمولا به آن نیاز دارید.
تگ <Limit> مشخص میکند که چه چیزی محدود شده است ( در اینجا قابلیت GET یا POST به هر فایل در دایرکتوری). در بین جفت تگ <Limit> لیستی وجود دارد که در آن مشخص است چه کسی میتواند به فایلها دسترسی یابد.
در مثالهای فوق، هر کاربر معتبری میتواند به فایلها دسترسی پیدا کند. اگر میخواهید دسترسی را به یک کاربر خاص یا تعداد کمی از کاربران محدود کنید، میتوانید آنها را نامگذاری کنید.
AuthUserFile /usr/local/etc/.htpasswd
AuthName “Name of Secure Area”
AuthType Basic
<Limit GET POST>
require user johnsmith
require user janedoe
</Limit>
همچنین میتوانید کاربران را در گروههایی قرار داده و اجازه دسترسی مبتنی بر گروه را به آنها بدهید. این کار با اضافه کردن فایل دیگری که گروهها را مشخص میکند انجام میشود.
فایل گروه، که میتواند برای مثال به نام .htgroups باشد مانند زیر است:
admin: johnsmith janedoe
staff: jackdoe cindysmith
سپس میتوانید آن را در فایل htaccess خود مشخص کنید:
AuthUserFile /usr/local/etc/.htpasswd
AuthGroupFile /usr/local/etc/.htgroup
AuthName “Admin Area”
AuthType Basic
<Limit GET POST>
require group admin
</Limit>
گزینههای جایگزین برای .htpasswd
استفاده از .htaccess و .htpasswd برای محدودسازی دسترسی به یک سری فایلهای خاص بر روی سرور خود فقط زمانی منطقی است که تعداد زیادی فایل استاتیک داشته باشید. این ویژگی زمانی توسعه یافت که، وبسایتها مجموعهای از داکیومنتهای HTML و منابع مرتبط بودند.
اگر از سیستم مدیریت محتوا (CMS) مانند؛ WordPress یا Drupal استفاده میکنید، میتوانید از ویژگیهای مدیریت کاربر داخلی برای محدود کردن یا اعطای دسترسی به محتوا استفاده کنید.
چرا از .htaccess به جای گزینههای دیگر استفاده میکنیم؟
میتوانید در فایلهای PHP ریدایرکت یا هر نوع server-side scripting دیگر نصب کنید. همچنین میتوانید آن را در سیستم مدیریت محتوا خود نیز نصب کنید. استفاده از .htaccess معمولا سریعترین نوع ریدایرکت میباشد. با ریدایرکتهای مبتنی بر PHP یا سایر زبانهای server-side scripting ، درخواست باید تکمیل شود. و اسکریپت تفسیر شده ما قبل پیام ریدایرکت به مرورگر ارسال میشود.
همراه ریدایرکتهای .htaccess، سرور به طور مستقیم به همراه پیام ریدایرکت به درخواست پاسخ میدهد. این روش خیلی سریعتر است. هرچند باید توجه داشته باشید که برخی از سیستمهای مدیریت محتوا، در واقع با به روز رسانی برنامهریزی شده .htaccess ریدایرکتها مدیریت میکنند. برای مثال؛ وردپرس پلاگینهای ریدایرکتی دارد که به روش گفته شده عمل میکند (همچنین سیستم URL در WPنیز اینگونه است).این به شما عملکرد مستقیم از .htaccess را میدهد، و در عین حال مدیریت راحت را از درون اپلیکیشن فراهم میکند.
پنهان کردن فایل htaccess: ملاحظات امنیتی
هیچ دلیلی برای اینکه کسی بتواند فایل htaccess شما را در وب مشاهده کند، وجود ندارد. علاوه بر این، دلایل زیادی وجود دارند که شما قطعا نباید بخواهید عموم، فایل.htaccess شما را ببینند. بزرگترین مسئله این است که، اگر از یک فایل .htpasswd استفاده میکنید، محل آن در فایل.htaccess مشخص شده است. دانستن این که کجا میتوان آن را پیدا کرد، یافتن آن را آسانتر میکند.
علاوه بر این، به عنوان یک قانون کلی،نباید جزئیات مربوط به عملکرد و برنامههای خود را در اختیار دیگران قرار دهید. در قوانین rewrite، تنظیمات دایرکتوری، امنیت – تمام موردهایی که از .htaccess برای آنها استفاده میشود- یک روش امنیتی مناسب آن است که که، همه این پشت صحنهها را در وب سرور خود پنهان کنید. هر چقدر یک هکر در مورد سیستم شما بیشتر اطلاعات کسب کند، سیستم همان قدر به خطر میافتد.
به راحتی میشود فایل.htaccess را از دید عموم پنهان کرد. ققط کافیست کد زیر را اضافه کنید:
<Files .htaccess>
order allow,deny
deny from all
</Files>
چه موقع نباید از .htaccess استفاده کنید؟
ادیت کردن فایل htaccess برای اولین بار میتواند اساس قدرت فوقالعادهای را به طور ناگهانی در برابر محیط وب هاستینگ به شما بدهد. شما ناگهان خود را مانند یک مدیر سیستم و sysadmin احساس میکنید.
متاسفانه این قدرت ممکن است به ذهن شما نفوذ کند و شما شروع به استفاده کردن از فایل htaccess در موقعیتهایی کنید که مناسب نیستند.
وقتی لازم است کاری انجام دهید که به نظر میآید از کارهای .htaccess باشد، دو موقعییت وجود دارد که باید دستورالعملها و دایرکتیوها را در جای دیگر به کار بگیرید.
آپ استریم بیشتر
در صورت امکان، بهتر است دستورالعملهایی که میخواهید، در فایل htaccess قرار دهید. که یک فایل تنظیمات پیکربندی برای کل سرور میباشد. به همین ترتیب، تنظیمات PHP مناسب فایل php.ini هستند و اکثر زبانهای دیگر نیز دارای تنظیمات پیکربندی مشابه میباشند. قرار دادن دایرکتیوهای بیشتر آپ استریم در httpd.conf،php.ini و یا فایل پیکربندی زبانهای خاص دیگر، اجازه میدهد تا این تنظیمات در موتور تجزیه وب جا بیافتند. همراه .htaccess دایرکتیوها باید با هر درخواست بررسی و تسفیر شوند.
اگر شما سایت کم ترافیکی با تعداد اندکی دایرکتیو .htaccess دارید، این مسئله بزرگی نیست. اما اگر با ترافیک بالا با دایرکتیوهای زیاد مواجه هستید، تاخیر در عملکرد میتواند تاثیرگذار باشد. متاسفانه بسیاری از ارائه دهندگان هاستینگ اشتراکی به مشتریان اجازه دسترسی به فایلهای http.conf یا php.ini را نمیدهند و کاربران را مجبور به اتکا به فایل کندتر .htaccess میکنند.
این یک مجازات مضاغف را در مقایسه با پیکربندی و کانفیگوریشن VPS سفارشی فراهم میکند زیرا هاستینگ اشتراکی نیز قدرت کمی دارد و کم مصرف است. این یکی از دلایلی است که سایتی با ترافیک بالا و تاثیرگذار باید به جای برنامه میزبانی اشتراکی در VPS باشد.
دان استریم بیشتر
اگر ار مدیریت محتوای خوبی مانند؛ WordPress یا Drupal استفاده میکنید، برخی از کارهایی که ممکن است در یک فایل htaccess انجام دهید( مانند ریدایرکت URLها یا بلاک کردن آدرسهای IP) از داخل برنامه قابل انجام هستند. این کار اغلب با فایل htaccess همراه است و اپلیکیشن به صورت برنامه ریزی شده دایرکتیو و دستورالعملهایی را اضافه میکند.
وقتی این مورد در دسترس است، بهتر است این وظایف در داخل اپلیکیشن انجام شوند تا اینکه خودتان فایل htaccess را ادیت کنید. اگر از یک پلاگین تست شده و باز استفاده کنید،احتمال اینکه باگها و دایرکتیوهای ناسازگار و متناقض را دریابید و معرفی کنید کم است.
عیب یابی
سرگرم شدن با فایل htaccess میتواند عالی باشد، اما همچنین میتواند باعث توقف کار سرور شما شده و آن شروع به تحویل دادن 500 ارور داخلی سرور کند. در اینجا چند پیشنهاد برای کمک به شما در این زمینه آورده شده است.
انجام دادن یک کار در زمان
لازم به ذکر نیست اما متاسفانه این درسی است که بسیاری از ما باید بارها و بارها آن را یاد بگیریم. یک کار را انجام دهید. آن را تست کنید. سپس کار دیگر را انجام دهید. آن را نیز تست کنید. اگر چندین کار را همزمان انجام دهید، و سپس به مشکل برخورد کنید، نخواهید دانست کدام دارکتیو مقصر است.
قبل از هر اغدام از فایل خود بکآپ تهیه کنید
به دنبال انجام فقط یک کار در زمان، شما باید فایل خود را بین هر اغدام ذخیره کنید. آرشیو ذخیره شما باید قابل بازیابی باشد. این Microsoft Word نیست که بتوانید راحت Undo کنید، شما یک کپی ذخیره شده از فایل خود نیاز دارید.همیشه، همیشه و همیشه توانایی بازیابی یک نسخه فعال را داشته باشید. اگر نوعی سیستم مدیریت منبع مانند git داشته باشید، این سادهترین حالت است. شما میتوانید هر تغییری را ایجاد کرده و در صورت بروز اشکال به عقب برگردید.
گزارشهای خطا را بررسی کنید
اگر به مشکل برخورد کردید و در پیدا کردن دلیل آن دشوار میباشد، گزارشهای خطا آپاچی خود را برسی کنید. اغلب در آنها اطلاعات ارزشمندی در مورد مکان جستجو برای یافتن اشکال ارائه میدهند.
از تالارهای گفتتمان توسعه دهندگان کمک بگیرید
تالارهای گفتمان و پرسش و پاسخ مانند StackOverflow حتی برای با تجربهترین توسعه دهندگان و sysadminها ابزارهای بینظیری هستند. البته Google را نیز فراموش نکنید. اغلب تفاوت بین یک مستر وب بد و یک مستر وب خوب در داستن پاسخ نیست بلکه، در دانستن مکان پیدا کردن پاسخ است.
مشکلات متداول .htaccess
گاهی ممکن است اشتباه تایپی داشته باشید. گاهی نیز ممکن است با اشکالات مبهم و گیج کننده روبرو شوید که ناشی از تلاقی عوامل غیرقابل پیشبینی میباشند.
بیشتر اشکالات ناامید کننده، موجود در مرکز میباشند. اشکلات ساده و روزمره که برای حل آنها فقط کافیست در مورد مکان وقئع آنها اطلاعات داشته باشید.
نامگذاری نامناسب فایل
فقط یک روش برای هجی کردن .htaccess وجود دارد. باید با نقطه شروع شود و با حروف کوچک تایپ شود.
شاید احمقانه به نظر بیاید ولی اگر فایل htaccess شما عملکرد مورد نظر را نداشته باشد اول از همه باید نامگذازی آن چک شود.
.htaccess به طور کامل یا تا حدی غیرفعال میباشد
برخی ارائه دهندگان هاستینگ اشتراکی .htaccess را به طور کامل غیرفعال میکنند. برخی دیگر فقط استفاده از بعضی دایرکتوریها را محدود میسازند. به همین ترتیب، در برنامههای VPS یا سرورهای اختصاصی شما، .htaccess ممکن است غیرفعال باشد.
اگر به فایل httpd.conf یا تنظیمات دیگر سرور دسترسی دارید، میتوانید خودتان آن را بررسی کنید. اگر دایرکتیو AllowOverride None را پیدا کنید، عامل را پیدا کردهاید. آن را به AllowOverride All تغییر دهید.
اگر به فایل httpd.conf دسترسی ندارید( برای مثال از هاستینگ اشتراکی استفاده میکنید) میتوانید با پشتیبانی فنی شرکت هاستینگ تماس گرفته و تقاضا به فعال شدن فایل کنید. همچنین ممکن است آنها روشهای دیگری را پیشنهاد دهند.
دستورالعملهای متناقض یا نادیده گرفته شده
اگر دارای چندین دایرکتوری تودرتو هستید. امکان اینکه هر کدام فایل htaccess خود را داشته باشند وجود دارد.
هر فایل htaccess از روت، از طریق هر دایرکتوری تودرتو، اعمال میشود و آنها به ترتیب خوانده میشوند، به سمت پایین درخت دایرکتوری. اگر چیزی را در روت دایرکتوری قرار دهید و سپس چیزی در سابدایرکتوری آن را باطل کند.دایرکتیو موجود در فایل htaccess نزدیک به درخواست برتری دارد.
سوالات متداول در مورد .htaccess
➢ فایل htaccess در سئو چیست؟
از فایل htaccess میتوان برای اجرای وظایف مرتبط با سئو مانند ریدایرکتها استفاده کرد و به search engine crawler اجازه داد بدانند کدام صفحات را باید فهرست بندی کنند. شما همچنین میتوانید هدرهای HTTP را تنظیم کنید تا سرعت بارگذاری صفحه را بهبود ببخشند و رتبه بندی موتور جستجوگر شما افزایش یابد.
علاوه بر این شما میتوانید از .htaccess برای تصویب یک سیاست trailing slash ثابت استفاده کنید. این همراه با قوانین www و HTTP میتواند به شما کمک کند از محتوای تکراری که توسط Google مجازات میشود جلوگیری کنید.
➢ چگونه فایل htaccess در وردپرس ایجاد کنیم؟
برای ایجاد فایل htaccess در وردپرس این کد را استفاده کنید:
# BEGIN WordPress
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ – [L]RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress
توجه داشته باشید که در پی نصب وردپرس، فایل htaccess به صورت خودکار ایجاد میشود. با این حال پلاگین معیوب میتواند فایل را خراب کرده و در نتیجه نیاز به ایجاد یک فایل htaccess جدید پیدا کنید.
➢ چرا نمیتوانم فایل htaccess خود را ببینم؟
اگر نمیتوانید فایل htaccess خود را ببینید، ممکن است فایل پنهان شده یا اصلا وجود نداشته باشد. برای مجبور کردن کلاینت FTP به نشان دادن فایلهای پنهان باید تنظیمات کلاینت را تغییر دهید.
( در FileZilla،ServeràForce Showing Hidden Files)
اگر بعد از انجام این تغییرات همچنان فایلی مشاهده نشد باید یک فایل جدید بسازید.
➢ چند عدد فایل htaccess باید داشته باشیم؟
خیلی از وب سایتها فقط به یک فایل نیاز دارند. به این دلیل که، فایل htaccess به شما امکان میدهد تغییرات پیکربندی سرور را بر اساس هر دایرکتوری اعمال کنید. با این حال، هنگام میزبانی چندین سایت یا اپلیکیشنهای پیچیده، برخی از مدیران وب ممکن است برای ارائه دادن عملکردهای پیشرفته از فایلهای بیشتری استفاده کنند.
➢ .htaccess در cPanel کجا قرار گرفته است؟
برای مشاهده فایل htaccess به حساب cPanel خود وارد شوید. سپس به FileàFile Manager بروید. وقتی از شما درخواست شد تا دایرکتوری مدنظر را انتخاب کنید، webRoot را انتخاب کرده و مطمئن شوید که گزینه Show Hidden Files چک خورده باشد. اکنون شما میتوانید فایل htaccess در cPanel را مشاهده کنید.
➢ از فایل htaccess در Codelgniter برای چه استفاده میشود؟
از فایلهای htaccess میتوان به همراه Codelgniter برای ایجاد URLهای دوستانه موتور جستجوگر استفاده کرد. به طور پیش فرض، URLهای Codelgniter شامل فایلهای index.php هستند. با استفاده از .htaccess میتوانید فایل پیشفرض index.php را حذف کرده تا در همه URLهای اپلیکیشن شما نشان داده نشود.