htaccess چیست؟ مخفف “دسترسی به متن” است.
نام برگرفته از کاربرد اصلی ابزار است که برای کنترل دسترسی کاربر به فایلهای خاص به صورت جداگانه در هر فهرست بوده است. پرونده .htaccess یک پرونده پیکربندی است که نحوه پاسخگویی وب سرور به درخواست های مختلف را کنترل می کند. این سرویس توسط چندین وب سرور از جمله وب سرور معروف آپاچی مورد استفاده قرار میگیرد و توسط اکثر ارائه دهندگان میزبانی وب قرار می گیرد.
htaccess چه کاربرد هایی دارد؟
همانطور که میدانید تنظیمات در htaccess میتواند تاثیر به سزایی در سئو وب سایت شما داشته باشد.قابلیت های این فایل بسیار گسترده است که در این متن به تعدادی از آن ها اشاره میکنیم:
- کنترل ریدایرکت
- کنترل دسترسی فیزیکی به فایلها و پوشه ها
- کنترل نمایش خطاهای Apache
- تنظیمات URL Rewrite
- مسدود کردن یک یا چند IP خاص یا یک رنج IP
- گذاشت پسورد بر روی پوشه ای خاص
- تنظیمات کش و Expire Date آن
اعمال برخی تغییرات در تنظیمات پیش فرض PHP، MySQL و Apache:
1-جلوگیری از نمایش تمامی فایلها یا یک یا چند فایل با پسوندی خاص
2-اضافه نمودن یک MIME
3-معرفی یک Default Document در پوشه ای خاص
4-تنظیم Default Chars
چگونه میتوانیم به فایل htaccess دسترسی پیدا کنیم؟
از نظر تئوری ، هر پوشه (فهرست راهنما) روی سرور شما می تواند دارای یک پرونده باشد. این پوشه ای است که تمام محتوای وب سایت شما را در خود جای داده . این فایل به صورت معمول در دایرکتوری public_html هاست وجود دارد. در اغلب سیستم های مدیریت محتوا مثل وردپرس و دروپال این فایل بصورت خودکار ایجاد می شود.
معمولاً پرونده هایی که با نقطه شروع می شوند (.) پرونده های مخفی هستند. در صورتیکه کنترل پنل هاست شما cpanel باشد، این کنترل پنل به صورت پیش فرض فایل های مخفی را نمایش نمی دهد، بدان معنی است که آنها به طور معمول قابل مشاهده نیستند. اما رسیدن به آنها دشوار نیست. بنابراین جهت نمایش فایل های مخفی بصورت زیر اقدام نمایید:
در پوشه File Manager در گوشه بالا سمت راست صفحه بر روی دکمه Settings کلیک کنید تا پنجره پاپ آپ مربوط به تنظیمات فایل منیجر نمایش داده شود. در پنجره پاپ آپ باز شده تیک گزینه Show Hidden Files را بزنید و روی save کلیک کنید. با این تغییر پس از ذخیره میتوانید وارد پوشه public_html شوید و فایل htaccess را مشاهده نمایید. در پوشه Home نیز سایر پوشه های مخفی نظیر Trash که فایل های حذف شده در آن قرار دارد قابل مشاهده خواهد بود.
چگونه میتوان یک پرونده htaccess ایجاد کرد ؟
اول از همه ، اطمینان حاصل کنید که “نمایش پرونده های مخفی” (یا معادل آن) را روشن کرده اید ، تا مطمئن شوید که در واقع یکی از آنها را ندارید. اغلب ، پرونده های .htaccess بطور خودکار ایجاد می شوند ، بنابراین شما معمولاً یک مورد را خواهید داشت. اما همیشه اینطور نیست. اگر واقعاً پرونده htaccess را ندارید ، به راحتی می توانید آن را ایجاد کنید:
1- یک فایل جدید را در یک ویرایشگر متن ساده شروع کنید. * آن را با فرمت ASCII (نه UTF-8 یا هر چیز دیگری)به عنوان htaccess ذخیره کنید
2- اطمینان حاصل کنید که htaccess.txt یا چیزی شبیه به آن نیست. پرونده باید فقط دارای نام .htaccess باشد که پسوند پرونده دیگری ندارد. * آن را از طریق FTP یا مدیر فایل مبتنی بر مرورگر خود در دایرکتوری مناسب بارگذاری کنید.
کد خطا چیست؟
هنگامی که یک درخواست به یک وب سرور ارائه می شود ، سعی می کند به آن درخواست پاسخ دهد ، معمولاً با ارائه یک سند (در مورد صفحات HTML) ، یا با دسترسی به یک برنامه و بازگشت بازده (در مورد سیستم های مدیریت محتوا و سایر برنامه های وب). اگر مشکلی پیش بیاید ، خطایی ایجاد می شود. انواع مختلف خطاها دارای کد خطای مختلف هستند. شما احتمالاً با خطای 404 آشنا هستید ، که در صورت عدم یافتن سند در سرور ، برمی گردد
ایجاد صفحات پیش فرض خطا:
ایجاد صفحه خطای اختصاصی به این معناست که مثلا لحظهای وبسایت شما با یکی از خطاهای رایج HTTP مواجه میشود. برای مثال فایل یا صفحهای وجود ندارد و بازدید کننده با وارد کردن آدرسی که در سرور و وبسایت شما وجود ندارد با خطای ۴۰۴ مواجه میشود. حال ممکن است او معنی این خطا را نداند و یا حتی اگر بداند باز دچار سردرگمی شود و از بازدید وبسایت شما منصرف شود.
در این شرایط چنانچه ما از پیش صفحهای ساخته باشیم تا بازدیدکننده به جای مواجهه با خطای ۴۰۴، وارد صفحهای شود که به درستی به او این پیغام را دهد که «فایل مورد نظر وجود ندارد؛ ممکن است این فایل به دلیلی حذف و یا جابهجایی آن به مسیر دیگر روی داده باشد»، این گونه بازدیدکننده حس بهتری نسبت به آن خطا پیدا میکند.
Htpasswd چیست؟
نام کاربری و کلمه عبور برای سیستم .htaccess در یک نام پرونده .htpasswd ذخیره می شوند. هر یک در یک خط به شکل زیر ذخیره می شوند:
نام کاربری: رمزگذاری شده
مثلا: johnsmith: F418zSM0k6tGl
درک این نکته مهم است که رمز عبوری که در پرونده ذخیره شده است ، رمزعبور واقعی استفاده شده برای ورود به سیستم نیست. بلکه این یک رمزنگاری رمز است. این بدان معنی است که رمز عبور از طریق الگوریتم رمزگذاری اجرا شده است و نتیجه ذخیره می شود. وقتی کاربر وارد سیستم می شود ، رمزعبور متن ساده وارد شده و از طریق همان الگوریتم اجرا می شود.
اگر ورودی یکسان باشد ، رمزهای عبور مطابقت دارند و به کاربر دسترسی داده می شود. ذخیره گذرواژهها از این طریق باعث امنیت بیشتر آنها می شود – اگر شخصی به پرونده .htpasswd شما دسترسی پیدا کند ، فقط رمزهای عبور داده شده را مشاهده می کند ، نه اصل. و هیچ راهی برای بازسازی اصل از هش وجود ندارد – این یک رمزگذاری یک طرفه است.
ایجاد نام کاربری و کلمه عبور در خط فرمان:
می توانید مستقیماً از خط فرمان یا ترمینال SSH ، یک پرونده .htpasswd ایجاد کرده و هردو نام کاربری رمزعبور را به آن اضافه کنید. دستور رسیدگی به پرونده .htpasswd به سادگی htpasswd است. برای ایجاد یک فایل جدید . htpasswd جدید ، از دستور با گزینه -c (برای ایجاد) استفاده کنید ، سپس مسیر دایرکتوری را تایپ کنید (نه URL ، مسیر واقعی روی سرور). همچنین می توانید کاربرانی را که می خواهید اضافه کنید نیز درج کنید.
> htpasswd -c /usr/local/etc/.htpasswd johnsmith این یک پرونده جدید .htpasswd در / / etc / فهرست ایجاد می کند ، و رکوردی را برای کاربر به نام johnsmith اضافه می کند. از شما می خواهد با استفاده از رمزگذاری md5 ، پسوردی را نیز ذخیره کنید ، که ذخیره می شود. اگر قبلاً یک پرونده .htpasswd در محل مشخص شده وجود داشته باشد ، پرونده جدید ایجاد نمی شود – کاربر جدید به سادگی در پرونده موجود اضافه می شود. اگر ترجیح می دهید از الگوریتم hashing bcrypt استفاده کنید ، از گزینه -b استفاده کنید.
هش کردن رمز عبور بدون خط فرمان:
اگر با استفاده از خط فرمان یا ترمینال SSH احساس راحتی نمی کنید (یا به دلایلی به آن دسترسی ندارید) ، می توانید به سادگی یک فایل .htpasswd ایجاد کرده و با استفاده از ویرایشگر متن ساده آن را جمع کنید و آن را بارگذاری کنید.
از طریق FTP یا مدیر پرونده
اما پس از آن باید رمزهای عبور خود را به نوعی رمزگذاری کنید ، زیرا فرمان htpasswd از آن مراقبت می کرد. بسیاری از برنامه های رمزگذاری .htpasswd به صورت آنلاین در دسترس است.
مشکلات متداول .htaccess
نام گذاری نامناسب پرونده:
فقط یک راه برای هجی کردن .htaccess وجود دارد – آن را باید با نقطه شروع کرد ، و باید همه با حروف کوچک باشد. به نظر می رسد گنگ است ، اما اگر پرونده .htaccess کاری را که انتظار دارید انجام نمی دهد ، باید اولین کاری باشد که شما بررسی می کنید.
.htaccess یا بخشی از آن غیر فعال شده است:
برخی از ارائه دهندگان میزبانی مشترک به طور کلی .htaccess را غیرفعال می کنند. برخی دیگر این اجازه را می دهند ، اما برخی دستورالعمل ها را در استفاده از آنها محدود می کنند. به طور مشابه ، حتی در برنامه های VPS یا سرورهای اختصاصی خود ، ممکن است .htaccess غیرفعال شود. اگر به پرونده httpd.conf یا سایر تنظیمات سرور دسترسی دارید ، می توانید این مورد را خودتان بررسی کنید.
اگر دستورالعمل AllowOverride None را پیدا کردید ، مقصر آن را پیدا کردید. آن را با AllowOverride All جایگزین کنید. اگر به پرونده httpd.conf خود دسترسی ندارید (زیرا به عنوان مثال در هاست اشتراکی هستید) ، ممکن است لازم باشد با پشتیبانی فنی شرکت میزبان خود تماس بگیرید و ببینید که آیا آنها می توانند آن را برای شما فعال کنند یا پیشنهادهایی را به شما ارائه دهند. به خاطر انجام آنچه می خواهید به روش دیگری انجام دهید.
دستورالعمل های متناقض یا محدود شده:
اگر چندین دایرکتوری توخالی دارید ، ممکن است هر یک پرونده htaccess خود را داشته باشند. هر پرونده htaccess از ریشه ، از طریق فهرست واقع شده ، اعمال می شود . اگر چیزی را در فهرست اصلی خود تنظیم کرده باشید ، و سپس چیزی در زیرشاخه آن را نادیده بگیرد ، دستورالعمل موجود در پرونده htaccess که به پرونده درخواستی نزدیک است ، اولویت دارد.
ریدایرکت
ریدایرکت انواع متفاوتی دارد که هر نوع آن هدف خاصی را دنبال می کند. در این آموزش از میان انواع رایج ریدایرکت، فقط به دو نوع کاربردی و مفید آن یعنی ریدایرکت ۳۰۱ و ریدایرکت ۳۰۲ می پردازیم. هر دو نوع ریدایرکت ۳۰۱ و ریدایرکت ۳۰۲ ، مشابه هم عمل می کنند و در هر دو نوع، هم کاربر و هم خزنده های موتورهای جستجوگر از آدرس قدیم به آدرس جدید منتقل می شوند. اما ریدایرکت ۳۰۱ به معنی انتقال دائم و همیشگی است در حالی که ریدایرکت ۳۰۲ به معنی انتقال موقت است.
ریدایرکت 301
اگر دامنهای قدیمی دارید مثلا ( example.com) و اکنون قصد دارید از یک دامنه جدید، برای مثال ( example.net) برای وبسایت خود استفاده کنید میتوانید با راه اندازی یک ریدایرکت 301، وبسایت خود را به دامنه جدید منتتقل کنید.
برای انجام این کار باید دستور زیر را در فایل htaccess. دامنه قدیمی وارد کنید:
RewriteEngine on RewriteCond %{HTTP_HOST} ^example.com [NC,OR] RewriteCond %{HTTP_HOST} ^www.example.com [NC] RewriteRule ^(.*)$ http://example.net/$1 [L,R=301,NC]
استفاده از نسخه www دار دامنهی وب سایت
یک موتور جستجو مانند گوگل، آدرسهای example.com و www.example.com را به عنوان دو وبسایت مجزا شناسایی میکند. به همین دلیل متخصصان سئوی گوگل همیشه پیشنهاد میکنند که یکی از این نسخهها را به عنوان آدرس اصلی و قابل نمایش برای موتورهای جستجو انتخاب کنید و با استفاده از ریدایرکت 301 دیگر نسخهها را نیز به این آدرس منتقل کنید.
اگر در حال حاضر تعداد زیادی بک لینک با آدرس example.com برای خود دست و پا کردهاید، اما قصد دارید کاربران در نهایت با آدرس www.example.com در مرورگر خود مواجه شوند میتوانید با اضافه کردن کد زیر در فایل htaccess. خود، این کار را انجام دهید:
RewriteEngine on RewriteCond %{HTTP_HOST} ^example.com [NC] RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301,NC]
استفاده از نسخهی بدون www دامنهی سایت
خب، این مورد دقیقاً عکس مورد قبلی است. زمانی که میخواهید نسخه www.example.com خود را به نسخهی بدون www منتقل کنید، باید کدهای زیر را در فایل htaccess خود وارد کنید:
RewriteEngine on RewriteCond %{HTTP_HOST} ^www.example.com [NC] RewriteRule ^(.*)$ http://example.com/$1 [L,R=301,NC]
ریدایرکت کردن فایلهای سرور با پسوند خاص
خب، اگر میخواهید تمامی فایلهای سایت خود را که پسوندی خاص دارند را به دیگر پسوندها تغییر دهید (برای مثال قصد دارید آدرس example.com/file.php را به آدرس example.com/file.htm تغییر دهید)، باید کد زیر را در فایل htaccess. قرار دهید:
RewriteEngine On RewriteCond %{REQUEST_URI} .php$ RewriteRule ^(.*).php$ /$1.htm [R=301,L]
خب، این بود روش انجام ریدایرکت 301 با استفاده از دستورات فایل htaccess . همانطور که گفتیم انجام ریدایرکت به این شکل کمی دشوار است. بنابراین اگر تسلط کافی بر روی سرور سایت خود ندارید، از دیگر روشها استفاده نمایید.
ریدایرکت 301 از طریق PHP
اگر از سیستم مدیریت محتوای وردپرس استفاده میکنید برای اجرای ریدایرکت 301، دو راهکار دارید:
- اعمال تغییرات بر روی کدهای هدینگ صفحه
- استفاده از ابزار داخلی wp_redirect وردپرس برای انجام ریدایرکت
برای آنکه بتوانید از طریق کدهای PHP، ریدایرکت 301 یا همان ریدایرکت دائم را اعمال کنید، باید کدهای زیر را در بالاترین قسمت محتوا قرار دهید (در بالاترین قسمت کدها، پیش از آنکه چیزی شروع شود):
<?php // Permanent 301 Redirect via PHP header("HTTP/1.1 301 Moved Permanently") ; header("Location: http://www.example.com/a-new-destination"); exit(); ?>
و این اسنیپت در نهایت به یک خط کد زیر تبدیل میشود:
<?php header("Location: http://www.example.com/a-new-destination", true, 301); ?>
همچنین، اگر بخواهید با استفاده از ابزار wp_redirect که در داخل وردپرس قرار دارد، این کار را انجام دهید. کد شما به شکل زیر خواهد شد:
wp_redirect( "http://www.example.com/a-new-destination", 301 );
توجه داشته باشید اگر فراموش کنید عدد 301 را در کد بالا وارد کنید، هم وردپرس و هم PHP ریدایرکت شما را به عنوان ریدایرکت 302 خواهند شناخت. زمانی که این کد در صفحه قرار میگیرد، بازدیدکنندگان را به آدرس جدید شما منتقل می کند. تنها کافیست کد PHP بالا را در صفحه مورد نظر خود وارد نمایید و به جای http://www.example.com/a-new-destination ، آدرس صفحه خود را وارد کنید تا عملیات ریدایرکت 301 کامل شود.
ریدایرکت 301 از طریق ASP
شاید وبسایت شما به جای زبان PHP با زبان ASP نوشته شده باشد. در این صورت تکلیف چیست؟ برای انجام ریدایرکت از طریق ASP باید چه کاری انجام داد؟ خب، در این شرایط باید بدانید که همۀ مراحل دقیقاً مانند ریدایرکت با زبان PHP صورت میگیرد با این تفاوت که کدهای ریدایرکت 301 در زبان ASP متفاوت است. برای این کار، کافیست کد زیر را در بالای کدهای صفحه خود وارد نمایید:
<%@ Language=VBScript %> <% Response.Status=”301 Moved Permanently” Response.AddHeader “Location”,”http://www.new-url.com/” %>
ریدایرکت 302
برای فهم ریدایرکت 302، باید درک مناسبی از ریدایرکت 301 نیز داشته باشیم. در ریدایرکت 301 یا همان( Permanent Redirect) آدرس یک صفحه یا وبسایت را میتوان برای همیشه به صفحه دیگری منتقل کرد. به این ترتیب افرادی که به آدرس قدیمی شما مراجعه میکنند، بهطور خودکار به آدرس جدید منتقل میشونداین شیوه برای انتقال آدرسهای داخلی وبسایت، حذف صفحات تکراری و بهبود سئو سایت کاربرد زیادی دارد.
درنتیجه، با کمک ریدایرکت 301 موتورهای جستجو، اصطلاحاً آدرس جدید را به جای آدرس قدیم ایندکس میکنند و تمام ترافیک، رتبه و ارزش آدرس قدیم را به آدرس جدید انتقال میدهند. پس از گذشت مدتی هم آدرس قدیمی از حافظه موتورهای جستجو حذف شده و ارزش و اعتبار خود را از دست میدهد.
چگونه ریدایرکت 302 انجام دهیم؟
حال که با کاربرد و مفهوم ریدایرکت 302 آشنا شدیم، وقت آن است که مراحل انجام آن را نیز یاد بگیریم. با این حال اگر به لحاظ فنی با سیستم مدیریت وبسایت آشنا نیستید، توصیه میکنیم پیش از انجام این کار با وبمستر خود مشورت کنید و با دادن آدرسهای قدیم و جدید صفحات، ریدایرکت کردن را به او واگذار کنید. با این حال، اگر تسلط کافی به سیستم مدیریت وبسایت خود را دارید میتوانید با انجام مراحل زیر بهراحتی صفحات خود را ریدایرکت کنید
وبسایتهای بر روی سرور یونیکس یا آپاچی
1- یک کپی از فایل htaccess. موجود در ریشه سایت خود تهیه کرده و آن را در پوشه Backup ذخیره کنید تا در صورت بروز خطا امکان بازیابی شرایط اولیه وجود داشته باشد.
2-فایل .htaccess را با برنامه Notepad++)یک برنامه ادیتور متن رایگان) باز کرده و در پایین کدهای موجود با توجه به مثال زیر ریدایرکت را انجام دهید (به فاصلهها دقت کنید)
3-redirect 302 /OldPage.html http://xyzname.com/NewPage.html
4-فایل ویرایش شده را ذخیره و بر روی سرور وبسایت خود بارگذاری کنید و در انتها با مراجعه به آدرس قدیمی (xyzname.com/OldPag)
5- e.html از ریدایرکت صحیح به آدرس جدید (NewPage.html) اطمینان حاصل کنید.
وبسایتهای بر روی سرورهای ویندوز
اگر از سرورهای ویندوز استفاده میکنید با کمال شرمندگی باید گفت که ریدایرکت 302 در این حالت بسیار پردردسر است زیرا یک صفحه باید در آدرس قدیمی باقی بماند تا کاربران به آدرس جدید هدایت شوند.
در هر حال، برای انجام ریدایرکت 302 در این حالت میتوان به روش زیر عمل کرد:
- یک صفحه در موقعیت آدرس قدیمی وبسایت قرار دهید (http://xyzname.com/OldPage.asp).
- اگر یک وبسایت ASP استاندارد را اجرا میکنید، کد زیر را در بالای تگ <html> یا <!DOCTYPE> کپی کنید:
- <%@ Language=VBScript %> <% Response.Status=”302 Found” Response.AddHeader “Location”,”http://xyzname.com /NewPage.asp ” %>
- همچنین اگر یک وبسایت Net. را اجرا میکنید، کد زیر را در بالای تگ <html> یا <!DOCTYPE> کپی کنید:
- <script runat=”server”> private void Page_Load(object sender, System.EventArgs e) { Response.Status = “302 Found”; Response.AddHeader(“Location”,”http://xyzname.com/NewPage.asp”); } </script>
- در انتها با مراجعه به آدرس قدیمی (xyzname.com/OldPage.html) از ریدایرکت صحیح به آدرس جدید (NewPage.html) اطمینان حاصل کنید.
نحوه تنظیمات فایل htaccess برای افزایش امنیت
۱- جلوگیری از دسترسی به فایل های مهم
فایل wp-config.php برای اعمال کانفیگ بر روی وردپرس می باشد و مهم ترین اطلاعات سایت مانند اطلاعات دیتابیس سایت در آن قرار دارد و اگر شخصی به آن دسترسی پیدا بکند می تواند سایت شما را براحتی هک کند. شما می توانید تنظیمات فایل htaccess را به گونه ای انجام دهید که این فایل و فایل های مهم دیگر مانند php.ini و نیز خود htaccess. از دسترس خارج شود.
برای این کار گافی است کد زیر را در فایل htaccess. وارد کنید. با اعمال این کد اجازه دسترسی به فایل های مهم را می بندید
<FilesMatch "^.*(error_log|wp-config\.php|php.ini|\.[hH][tT][aApP].*)$"> Order deny,allow Deny from all </FilesMatch>
۲ تنظیمات فایل htaccess برای جلوگیری از دسترسی به فایل های PHP
شما می توانید با اعمال کد زیر، اجازه دسترسی به فایل های PHP و تزریق بدافزارها در آنها را به دیگران ندهید
RewriteCond %{REQUEST_URI} !^/wp-content/plugins/file/to/exclude\.php RewriteCond %{REQUEST_URI} !^/wp-content/plugins/directory/to/exclude/ RewriteRule wp-content/plugins/(.*\.php)$ - [R=404,L] RewriteCond %{REQUEST_URI} !^/wp-content/themes/file/to/exclude\.php RewriteCond %{REQUEST_URI} !^/wp-content/themes/directory/to/exclude/ RewriteRule wp-content/themes/(.*\.php)$ - [R=404,L]
۳-جلوگیری از اجرا شدن فایل های PHP
یکی از مکانهایی که هکرها برای آپلود بدافزارها از آن استفاده می کنند، فایل wp-content/uploads است. اگر هکر موفق به هک کردن سایت شما شود می توانید دسترسی او به فایل wp-content/uploads را ببندید و مانع از از اجرای کدهای بد در سایت خود شوید.
برای این کار کافی است قطعه کد زیر را به فایل htaccess. اضافه کنید:
<Directory "/var/www/wp-content/uploads/"> <Files "*.php"> Order Deny,Allow Deny from All </Files> </Directory>
۴-تنظیمات فایل htaccess برای غیرفعال کردن تزریق کدهای مخرب
از قطعه کد زیر برای جلوگیری از تزریق کدهای مخرب توسط هکرها در داخل فایل های PHP موجود خود استفاده کنید.
Options +FollowSymLinks RewriteEngine On RewriteCond %{QUERY_STRING} (<|%3C).*script.*(>|%3E) [NC,OR] RewriteCond %{QUERY_STRING} GLOBALS(=|[|%[0-9A-Z]{0,2}) [OR] RewriteCond %{QUERY_STRING} _REQUEST(=|[|%[0-9A-Z]{0,2}) RewriteRule ^(.*)$ index.php [F,L]
۵- افزایش امنیت پوشه wp-includes
پوشه wp-includes محل فایل های هسته وردپرس است که هیچ کاربری نیازی به دسترسی به این پوشه ندارد. برای اینکه مطمئن شوید که این اتفاق نمی افتد، از قطعه کد زیر استفاده کنید.
Options +FollowSymLinks RewriteEngine On RewriteCond %{QUERY_STRING} (<|%3C).*script.*(>|%3E) [NC,OR] RewriteCond %{QUERY_STRING} GLOBALS(=|[|%[0-9A-Z]{0,2}) [OR] RewriteCond %{QUERY_STRING} _REQUEST(=|[|%[0-9A-Z]{0,2}) RewriteRule ^(.*)$ index.php [F,L]
۶-ایجاد محدودیت در دسترسی به بخش مدیریت وردپرس
شما می توانید تنظیمات فایل htaccess. را به گونه ای پیکربندی کنید که صفحه لاگین وردپرس شما محدود به IP های خاصی باشد. این کار مخصوص کسانی است که از آی پی ثابت استفاده می کنند. برای انجام آن کد زیر را کپی کرده و در فایل htaccess. پیست کنید.
ErrorDocument 401 default ErrorDocument 403 default <Files wp-login.php> Order deny,allow Deny from all Allow from 198.101.159.98 </Files>
۷-تنظیمات فایل htaccess برای قفل کردن بعضی از آدرسهای IP
به همین روش می توانید بعضی از آدرسهای IP که سعی دارند کارهای خرابکارانه در سایت شما انجام دهند را بلاک کنید. اگر متوجه چنین چیزی شدید (به عنوان مثال از لاگ های سرور) با اضافه کردن کد زیر به فایل htaccess. می توانید آنها را بلاک کنید.
آدرسهای IP که در کد زیر به عنوان نمونه قرار داده شده است را با آدرس های مدنظر خودتان عوض کنید.
order allow,deny deny from 456.123.8.9 allow from all
۸- جلوگیری از نمایش پوشه ها (Directory Browsing)
به صورت پیش فرض همه بازدیدکنندگان می توانند پوشه های هر سایت وردپرسی را بررسی کرده و فایل های آن را مشاهده کنند. کافی است وارد آدرس your-site.com/wp-content/uploads شوند. لیست کاملی از فایل ها و پوشه های شما در آنجا قابل مشاهده است. اگرچه این مشاهدات امکان ایجاد تغییری را برای هکرها به وجود نمی آورد اما دانستن ساختار سایت شما می تواند به آنها کمک می کند. برای غیرفعال کردن این دسترسی کد زیر را در فایل htaccess. وارد کنید.
Options All -Indexes
۹-تنظیمات فایل htaccess برای افزایش امنیت پوشه wp-includes
پوشه wp-includes مکان قرارگیری فایل های مهم وردپرس است . با جلوگیری از دسترسی های غیرمجاز به این پوشه ، می توانید جلوی سو استفاده های احتمالی از محتویات آن را بگیرید . برای افزایش امنیت پوشه wp-includes کافی است کد زیر را در فایل htaccess. قرار دهید.
<IfModule mod_rewrite.c> RewriteEngine On RewriteBase / Rew riteRule ^wp-admin/includes/ - [F,L] RewriteRule !^wp-includes/ - [S=3] RewriteRule ^wp-includes/[^/]+.php$ - [F,L] RewriteRule ^wp-includes/js/tinymce/langs/.+.php - [F,L] RewriteRule ^wp-includes/theme-compat/ - [F,L] </IfModule>
۱۰-تنظیمات فایل htaccess برای جلوگیری از مشاهده اطلاعات کاربران با ID آنها
وقتی یک بازدیدکننده وارد آدرس your-site.com/?author=1 سایت شما شود ، به صفحه اطلاعات و نوشته های کاربری که دارای شناسه کاربری یا ID ۱ است منتقل می شود . این صفحه شامل نام کاربری است که کاربر با آی دی ۱ دارد . بازدیدکننده با این روش به راحتی می تواند نام کاربری کلیه کاربرهای سایت شما را پیدا کند .
این روش با عنوان username enumeration شناسایی می شود . اگر هکر نام کاربری کاربران سایت را پیدا کند، تنها مورد دیگری که نیاز است پیدا کند، رمز عبور است . با قرار دادن کد زیر در فایل htaccess. ، می توانید جلوی مشاهده اطلاعات کاربران با آی دی آن ها را بگیرید.
RewriteCond %{QUERY_STRING} author=d RewriteRule ^ /? [L,R=301]
۱۱- الزامی کردن SSL
این موضوع که گوگل به وب سایت های امن رنکینگ بالاتری می دهد نشان دهنده اهمیت استفاده از گواهینامه SSL برای وب سایت ها است.
داشتن گواهینامه SSL نه تنها رنکینگ سایت ها را افزایش می دهد بلکه نقش مهمی در تأمین امنیت وب سایت ها در برابر سرقت اطلاعات آنها ایفا می کند. برای کسب اطلاعات بیشتر درباره گواهی نامه SSL و چگونگی فعال کردن آن برای وب سایت وردپرسی خود به مقاله آموزش نصب SSL در وردپرس مراجعه کنید. با استفاده ازکد زیر در صورتی که کاربر آدرس سایت را وارد کند به صورت خودکار به برگه دارای گواهی SSL منتقل می شود.
SSLOptions +StrictRequire SSLRequireSSL SSLRequire %{HTTP_HOST} eq "www.you-site.com" ErrorDocument 403 https://www.your-site.com
۱۲-تنظیمات فایل htaccess برای جلوگیری از سرقت تصاویر (Image Hot Linking) در وردپرس
وقتی یک بازدیدکننده آدرس تصویر شما را کپی کرده و به جای آپلود آن در سایت خود ، از آن استفاده می کند در واقع از پهنای باند شما سوءاستفاده می نماید . به این حالت hot linking می گویند. برای جلوگیری از( Hotlinking سرقت تصاویر) در وردپرس راه های زیادی وجود دارد که یکی از آنها استفاده از فایل htaccess. است.
کافی است کد زیر را در فایل htaccess. قرار دهید.
RewriteEngine On RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^http://(www.)?your-site.com/.*$ [NC] RewriteRule .(gif|jpg)$ http://www.your-site.com/hotlink.gif [ R,L]
۱۳-جلوگیری ازسرقت فایل های زبان قالب ها و افزونه ها
برای این کار کافی است کد زیر را در فایل htaccess. قرار دهید. با این کار کلیه دسترسی های خارجی و غیر مجاز به فایل های زبان پوسته ها و افزونه ها ممنوع می شود.
<Files *.po> deny from all </Files> <Files *.mo> deny from all </Files>
برای بهینه سازی سایت از طریق htaccess در همین مقاله توضیحاتی بعدا اضافه خواهم کرد ..
خدمات و آموزش دیجیتـال مارکتینگ در آکادمی وب آنجل
آموزش دیجیتـال مارکتینگ در آکادمی وب آنجل یک فرصت بینظیر برای توسعه مهارتهای بازاریابی آنلاین است. این دوره ها توسط حامد مهدی زاده، متخصص سئـو و بازاریابی با بیش از یک دهه تجربه، ارائه میشود. همچنین برای استفاده از خدمات سئـو وب آنجل نیز می توانید همین حالا تماس بگیرید.
به پایان آمد این دفتر حكایت همچنان باقیست
نظر شما برای بهبود کیفیت کار ما ارزشمند است
متاسفیم که این پست برای شما مفید نبود!
Let us improve this post!
چگونه میتوانیم این پست را بهبود بخشیم؟
- ریدایرکت چیست؟آشنایی با کدهای ریدایرکت و انواع Redirect
- آموزش جامع و کامل کار با افزونه ویژوال کامپوزر
- ایمیل مارکتینگ {Email Marketing}
- آموزش جامع کپی رایتینگ؛ هر آنچه در مورد نوشتن متن…
- CDN چیست؟
- راهنمای نوشتن متن تبلیغاتی
- آموزش تولید محتوا
- اهمیت و تاثیر داده ساختار یافته در سئو
- بهترین قالب های رایگان وردپرس
- محصولات ابزارها و خدمات ارائه شده توسط گوگل