۲۱ دستور مهم و کاربردی فایل htaccess را در این مقاله  از وب سایت کارسازشو به شما معرفی خواهیم کرد ، بهینه کردن سایت بسیار آسان است به شرطی که بتوانید به قسمت های مختلف سایت کدهایی اضافه کنید برای بهینه سازی و استاندارد کردن ، در این آموزش هم ۲۱ دستور مهم و کاربردی فایل htaccess را برای بهینه کردن سایت به شما معرفی خواهیم کرد.

بهینه سازی فایل htaccess

بهینه سازی فایل Htaccess

 فایل Htaccess یکی از مهم ترین موارد بهینه سازی یک سایت میباشد یکی از مهم ترین فایل های کنار هر پروژه طراحی سایت میباشد، با کمک این فایل کارهای متفاوتی میتوان در مدیریت یک وب سایت انجام داد و به طور کلی تاثیر این فایل بسیار زیاد است.مهم ترین مواردی که میتوان به آنها اشاره کرد. بهینه سازی و افزایش سرعت وب سایت و همچنین بالابردن امنیت در وب سایت در ادامه با ما همراه باشید تا به طور کامل و جامع به این فایل آشنا شویم و حرفه ای ترین کدهای کاربردی را به شما معرفی کنیم.

اگر شما هم جز دسته متخصصین وب هستید.پیشنهاد کارسازشو و توصیه بنده ، کمی حوصله به خرج بدید و تا آخر مطلب رو مطالعه کنید.حتما مطالبی برای اضافه شدن به دانش شما در این مقاله وجود. اما اگر به تازگی وارد حوزه وب شدید و یا اگه اولین بار هست که با این فایل اشنا شدید ، نگران نباشید چون قصد داریم از سطح مقدماتی تا پیشرفته به زبان ساده این فایل را برای شما توضیح دهیم.

فایل htaccess چیست؟

در اکثر سیستم‌های مدیریت محتوا مثل وردپرس ، جوملا، دروپال و…. یک فایل در ریشه اصلی هاست شما وجو دارد که عموما به صورت مخفی است نام این فایل htaccess میباشد. این فایل را در حقیقت با نام distributed configuration files می‌شناسند و در واقع برای کنترل سرویس آپاچی استفاده میشد.

فایل htaccess کجاست

.htaccess یک فایل مخفی میباشد ، که می‌تواند در هر فولدری قرارداشته باشد و همانطور که گفته شد عملیات های سرور مربوط به آن فولدر و زیر شاخه ها را تنظیم میکند، برای مثال میتوانید دسترسی به بعضی از فایل ها را محدود کنید تا از آن فایل‌ها محافظت شود و هکر ها نتوانند فایل را خارج کنند ، URL را تنظیم کنید یا مدیریت فایل‌های قابل کش را به این فایل ارائه دهید. به طور کلی این فایل کارهای بسیار مهمی را بر عهده دارد.

 

محل فایل htaccess در وردپرس

این فایل در سرور و هاست شما به صورت فایل مخفی میباشد ، دلیل این امر هم مهم بودن فایل htaccess است که اگر کاربری به اشتباه این فایل را تغییر دهد سایت دچار مشکلاتی خواهد شد. برای نمایش فایل htaccess کافی هست در سی پنل، هنگامی که بر file manager کلیک کردید ، تیک گزینه show hide files را فعال کنید تا بعد از باز شدن پنجره مدیریت فایل‌ها تمام فایل‌های مخفی قابل رویت باشند.

مقاله خوبیه باید بخونمش
معرفی ابزارهای تحت وب برای آنالیز و تحلیل سرعت سایت

دستورات کاربردی htaccess

در ادامه ۲۲ دستور کاربردی و مهم فایل htaccess را برای شما قرار دادیم تا بتوانید بر اساس نیاز خود اقدام به استفاده از هر کدام از قطعه کدهای مد نظر کنید. اگر تا به این لحظه کامل یادگرفتید که فایل htaccess چیست و چه کاربردی دارد در ادامه میتوانید با ما همراه باشید و از کدهای معرفی شده بهتر استفاده کنید.


۱-کد کاربردی محافظت از فایل htaccess

برای جلوگیری از سرقت اطلاعات و ایجاد مشکل در خود فایل htaccess کد زیر را در ابتدای فایل htaccess قرار داده تا مشکلی برای فایل htaccess شما به وجود نیاد.

 

<files ".htaccess">
order allow,deny
deny from all
</files>

۲-جلوگیری از سرقت فایل های درون فولدرهای شما در هاست

گاهی اوقات پیش می آید که شما از سایت خود بک اپ گرفته و یا قالب و افزونه ای را نصب کردید که فایل zip آن در هاست شما موجود است. در چنین شرایطی به راحتی میتوان فایل مورد نظر را دانلود کرد و به نوعی دسترسی کامل به بک اپ سایت شما وجود دارد. لذا باید برای جلوگیری از این کار قطعه کد زیر را در فایل htaccess خود قرار دهید تا اجازه چنین کاری را به هکرها و افراد دیگر ندهید.

Options All -Indexes

 

۳-ثبت زبان پیشفرض برای سایت یا (DefaultCharset)

برای اینکه زبان پیش‌فرض استفاده شده را به مرورگر ارائه دهید. برنامه نویسان وب کد مخصوصی را با دستورات html به هدر سایت اضافه میکنند. با دستور زیر اجبار میکنیم که همیشه صفحات با این حالت باز شوند. این کار تاثیر بسیار عالی در سئوی سایت شما هم دارد.

# pass the default character set
AddDefaultCharset utf-8

۴-تعیین صفحات سفارشی و ویژه برای خطاهای سایت

اگر کمی خلاقیت به خرج دهیم و از قالب های HTML اماده صفحات ۴۰۴ استفاده کنیم میتوانیم یک سری از رورهای را به زیبای هم به کاربر نمایش دهیم و هم به گوگل شما با تیکه کدهای زیر می‌توانید صفحاتی را که برای نمایش هنگام ایجاد خطا، طراحی و در پوشه error قرار داده شده را جایگزین صفحات خطای پیش‌فرض سرور کنید و خطای مورد نظر خود را به کاربر و هکرها نشان دهید. معرفی و تعیین صفحات خطا برای سئو سایت تاثیر بسیار عالی دارد.

ErrorDocument 401 /error/401.php
ErrorDocument 403 /error/403.php
ErrorDocument 404 /error/404.php
ErrorDocument 500 /error/500.php

چند خطای متداول و زیاد دیده شده:

• خطای ۴۰۱ : دسترسی به آدرس وارد شده غیر مجاز است.
• خطای ۴۰۳: دسترسی به این آدرس ممنوع می‌باشد.
• خطای ۴۰۴: آدرس مورد نظر یافت نشد.
• خطای ۵۰۰: خطای داخلی سرور بوجود آمده است.

۵- بن کردن اسپمرها با محدودیت دسترسی از طریق آی پی

وقتی سایت شما شروع به رشد کردن و بزرگ شدن کند قطعا اسپمرهایی اقدام به ارسال دیدگاه های اسپم میکنند و این قطعا وقتی زیاد شود به صورت دستی قابل کنترل نیست و باید جلوگیری کنیم از این مشکل با قراردادن تیکه کد زیر میتوانید این مورد را کنترل کنید ، اما حتما ادامه این قسمت را بخوانید.

مقاله خوبیه باید بخونمش
افزایش سرعت سایت وردپرسی با کمک ابزار GtMetrix

<Limit GET POST>
order allow,deny
deny from 200.49.176.139
allow from all
</Limit>

دستور “allow from all” یعنی همه آی‌پی‌ها بجز آی‌پی‌های مسدود شده دسترسی دارند. اگه بخوایم فقط به آی‌پی‌های خاصی اجازه دسترسی دهیم کافیه به این شکل وارد کنید “allow from 188.50.38.143” و به جای آی پی درج شده آی پی مورد نظر خودتون رو وارد کنید. با دستور “deny from 200.49.176.139” هم اجازه دسترسی این آی پی رو میگیرم که میتوانید به هر تعداد که مایل بودید کپی کنید و ای پی های بعدی را وارد کنید.

 

نکته : بعضی مواقق قرار دادن “<Limit GET POST>” و “</Limit>” در ابتدا و انتهای تعیین دسترسی‌ها مشکلاتی رو ایجاد می‌کند.بهتر است انها را قرار ندهید.

۶- جلوگیری از ارسال دیدگاه اسپم در وردپرس

افزونه اکیسمت افزونه شناخته شده‌ای در زمینه جلوگیری از ارسال اسپم میباشد که در بسته اصلی خود وردپرس نیز نصب شده است.اما اگر شما قصد ندارید برای هر کار افزونه ای نصب کنید و سایت خود را شلوغ کنید بهتر است از کدهای زیر استفاده کنید. شما می‌تونید با استفاده از کد زیر از ارسال هرزنامه به وبسایتتان جلوگیری کنید دقت داشته باشید که در خط چهارم آدرس سایت خود را وارد کنید.

RewriteEngine On
RewriteCond %{REQUEST_METHOD} POST
RewriteCond %{REQUEST_URI} .wp-comments-post\.php*
RewriteCond %{HTTP_REFERER} !.*Karsazsho.com.* [OR]
RewriteCond %{HTTP_USER_AGENT} ^$
RewriteRule (.*) ^http://%{REMOTE_ADDR}/$ [R=301,L]

۷-حذف نام category از آدرس سایت وردپرسی شما :

شاید شما هم دوست داشته باشید کلمه /category/ را از آدرس سایت وردپرسی حذف کنید. این کار علاوه بر اینکه باعث کوتاه شدن url شما میشود ، در سئو سایت نیز موثر هست. البته با تغییر پیوند یکتای مربوط به category هم میشود.

 
RewriteRule ^category/(.+)$ http://www.yourblog.com/$1 [R=301,L]

 

۸- ورود به سایت با www یا بدون www

این مورد یکی از حساس ترین موارد تغییر در فایل htaccess است چرا که امکان دارد کل زحمت های شما با یک کد اشتباه بر باد رود پس با دقت این قسمت را مطالعه کنید.اگر سایت شما با هر دو روش یعنی هم با www و هم بدون www امکان بارگزاری داشته باشه باید بگم سئوی سایت شما به زودی نابود خواهد شد.


شاید سوال کنید چرا؟ به این دلیل که روبات های گوگل اینطور برداشت میکنند که این دو وب سایت کاملا متفاوت هستند.و اینطور ارزش سایت شما کاهش پیدا میکند.بر اساس تجربه های بنده باید عرض کنم که سایت را بدون www ثبت کنید بهتر است. اما باید این نکته رو متذکر شوم که اگر سایت شما تا این لحظه با www ایندکس شده به هیچ وجه تغییر ندید که تمام زحمت شما بر باد خواهد رفت.اگر میخواهید متوجه شوید سایت شما در گوگل چطور ثبت شده میتوانید دستور زیر را در گوگل قرار دهید و بجای نام کارسازشو نام سایت خود را قرار دهید.

مقاله خوبیه باید بخونمش
افزونه ارسال تیکت در وردپرس

Site:Karsazsho.com

 

اما برای اینکه دامنه سایت بدون www قرار دهید. کافیست کد زیر را در htaccess قرار دهید (البته آدرس دامنه خودتون را بجای yoursite.com در خط دوم و سوم وارد کنید):

RewriteEngine On
RewriteCond %{HTTP_HOST} !^yoursite\.com$ [NC]
RewriteRule ^(.*)$ http://yoursite.com/$1 [R=301,L]

و برای قراردادن دامنه فقط با www از این کد استفاده کنید:

RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]

 

۹- افزایش امنیت فایل wp-config.php در htaccess :

برای جلوگیری از درز اطلاعات فایل مورد نظر و جلوگیری از دسترسی به اطلاعات پایگاه داده سایت شما باید کد زیر را در فایل htaccess قرار بدین

<files wp-config.php>
order allow,deny
deny from all
</files>

 

۱۰- مخفی کردن فرمت ها/شناسایی فرمت‌های جدید

یک راهکار امنیتی که پیشنهاد می‌کنم برای محافظت از اسکریپت‌های PHP شما این هست که آنها PHP نباشند! برای مثال: فایل PHP شما با فرمت ASP باز شود!! البته شاید راهکار منطقی نباشد.

AddType application/x-httpd-php .asp .jsp

۱۱-ریدایرکت/Redirect کردن :

برای ریداریکت کردن یک ادرس به ادرس جدید میتوانید کد زیر را در فایل htaccess قرار دهید و عملیات ریدایرکت اتوماتیک انجام میشود.

 

Redirect /Dirold/old.html http://site.com/DirNew/new.html

۱۲-ایجاد محدودیت در نوع فایل های قابل اجرا و نمایش :

برای حفظ امنیت و اطلاعات سایت راهکار دیگری که پیش رو دارید این است که پسوند های را مشخص کنید و اجازه دسترسی فقط به بعضی از فایل ها دهید. درکل میتوان پسوند فایل‌هایی که قابل نمایش هستند را تعیین کنید :

Options +FollowSymlinks
RewriteEngine On
rewritecond %{REQUEST_FILENAME} !^(.+).css$
rewritecond %{REQUEST_FILENAME} !^(.+).js$
rewritecond %{REQUEST_FILENAME} !file.php$
RewriteRule ^(.+)$ /deny/ [nc]

نکته مهم که باید بدانید. : با کد بالا کاربر فقط اجازه باز کردن فایل هایی با پسوند css , js و php را دارد و در صورتی که درخواست سایر پسوندها را ارسال کند. ریدایرکت میشود به پوشه deny.

۱۳- ایجاد محدودیت در آپلود فایل :

با کد زیر حداکثر حجم فایل قابل آپلود رو ۲۰ مگابایت تنظیم کردیم که شما میتوانید بر اساس سیاست های کلی سایت خود این مقدار را تغییر دهید.

php_value upload_max_filesize 20M

۱۴- ایجاد محدودیت در حجم پست ارسالی :

با کد زیر شما میتوانید در ارسال هر پست نهایت حجم ارسالی را ۲ مگ تعیین کنید.

php_value post_max_size 2M

 

۱۵- نمایش پیغام requast time در بازه زمانی مشخص :

requast time حداکثر زمانی درخواست فراخوانی یک صفحه است که شما میتوانید آن را بر اساس نیاز خود تغییر دهید.

مقاله خوبیه باید بخونمش
تفاوت نوشته و برگه در وردپرس

php_value max_execution_time 200

۱۶- حداکثر زمان دریافت اطلاعات از متود POST و GET :

php_value max_input_time 250

۱۷- جلوگیری از سرقت پهنای باند شما به وسیله

بسیار از افراد سود جو و کسانی که در اینترنت حاضر نیستند محتوای خوب تولید کنند، تلاش های شما را سرقت میکنند ، با بر داشتن لینک عکس و فیلم های شما و قرار دادن آن ها در سایت خودشان در زمان فراخوانی درخواست به سرور شما ارسال میشود و پهنای باند شما را اشغال میکنند برای جلوگیری از این کار میتوانید تیکه کد زیر را در فایل htaccess قرار دهید. دقت کنید بجای site.com باید نام سایت خود را قرار دهید.

RewriteEngine On
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?site.com/ .*$ [NC]
RewriteRule \.(gif|jpg|swf|flv|png)$ /feed/ [R=302,L]

 

۱۸- فعال کردن خصوصیت Gzip :

قبل از اینکه بخواهیم خصیصه مهم و کاربردی Gzip را فعال کنیم بهتر است بدانیم این خصیصه چیست و چه کاربردی دارد. به صورت ساده و کوتاه میتوان گفت جی زیپ پکیج کامل تمام اطلاعاتی که مرورگر کاربر درخواست میکند از طریق هاست با خصیصه جی زیپ ارسال میشود.یعنی وقتی کاربر از طریق مرورگر درخواست نمایش سایت شما را ارسال میکند.

این درخواست به سرور ارسال می شود و سرور فایل‌هایی که برای نمایش سایت لازم است را به مرورگر کاربر ارسال میکند و سایت نمایش داده می شود، ولی اگه از قابلیت Gzip استفاده کنید هنگام درخواست، سرور فایل‌های مورد نیاز را به صورت فشرده ، فایل فشرده شده را به مرورگر کاربر ارسال میکند و بعد از خارج شدن از حالت فشرده در سیستم کاربر سایت شما نمایش داده می شود. شما میتوانید از کد زیر برای فعال کردن آن درسایت خود استفاده کنید ، باید این نکته را متذکر شوم هاست شما باید این خصیصه را در خود داشته باشد و اگر هاست شما این مورد را پشتیبانی نکند بهتر است هاست را عوض کنید.

# BEGIN Compress text files
<ifModule mod_deflate.c>
<filesMatch "\.(css|js|x?html?|php|woff|ttf|png|jpg|gif)$">
SetOutputFilter DEFLATE
</filesMatch>
</ifModule>
# END Compress text files

۱۹- مدیریت Cache در فایل htaccess :

کش از مواردی است که باید حتما فعال باشد ، درغیر این صورت با هر بار درخواست لود شدن سایت مرورگر مجبور است تمام فایل هایی که میتواند در کش خود ذخیره داشته باشد را باید ازخوانی کند برای فعال کردن این مورد در فایل htaccess میتوانید کد زیر را استفاده کنید.

دقت کنید در کدهای زیر فاصله وجود دارد و هر قسمت برای انجام کاری است لطفا قبل از انتقال به فایل htaccess حتما مطالعه کنید بعد انتقال دهید

# BEGIN Expire headers
<ifModule mod_expires.c>
ExpiresActive On
ExpiresDefault “access plus 1 month”
ExpiresByType image/x-icon “access plus 1 year”
ExpiresByType image/jpeg “access plus 1 month”
ExpiresByType image/png “access plus 1 month”
ExpiresByType image/gif “access plus 1 month”
ExpiresByType image/jpg “access plus 1 month”
ExpiresByType application/x-shockwave-flash “access plus 1 month”
ExpiresByType text/css “access plus 1 month”
ExpiresByType text/javascript “access plus 1 year”
ExpiresByType application/javascript “access plus 1 year”
ExpiresByType application/x-javascript “access plus 1 year”
ExpiresByType text/html “access plus 600 seconds”
ExpiresByType application/xhtml+xml “access plus 600 seconds”
ExpiresByType font/ttf “access plus 1 year”
ExpiresByType font/woff “access plus 1 year”
</ifModule>
# END Expire headers

مقاله خوبیه باید بخونمش
آموزش رفع خطای ۴۰۴ در وردپرس

# BEGIN Cache-Control Headers
<ifModule mod_headers.c>
<filesMatch “\.(ico|jpe?g|png|gif|swf|woff|ttf)$”>
Header set Cache-Control “max-age=2592000, public”
</filesMatch>
<filesMatch “\.(css)$”>
Header set Cache-Control “max-age=2592000, public”
</filesMatch>
<filesMatch “\.(js)$”>
Header set Cache-Control “max-age=2592000, private”
</filesMatch>
<filesMatch “\.(x?html?|php)$”>
Header set Cache-Control “max-age=600, private, must-revalidate”
</filesMatch>
</ifModule>
# END Cache-Control Headers

# BEGIN Turn ETags Off
<ifModule mod_headers.c>
Header unset ETag
</ifModule>
FileETag None
# END Turn ETags Off

# BEGIN Remove Last-Modified Header
<ifModule mod_headers.c>
Header unset Last-Modified
</ifModule>
# END Remove Last-Modified Header

۲۰- حل مشکل تعداد آیتم های فهرست وردپرس :

در زمان ایجاد فهرست در وردپرس امکان دارد تعداد ایتم ها وقتی زیاد شود هر چقدر شما ذخیره را کلیک کنید عملیات سیو کردن رخ ندهد. برای حل این محدودیت کد زیر رو تو فایل htaccess قرار بدین:

<IfModule mod_php.c>
php_value suhosin.post.max_vars 7000
php_value suhosin.request.max_vars 7000
</IfModule>

۲۱- افزایش امنیت فولدر wp-includes :

کافیه کد زیر رو در htaccess قرار بدین :

# Block the include-only files.
RewriteEngine On
RewriteBase /
RewriteRule ^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]

بهترین htaccess برای وردپرس

در بالا کدهایی مخصوص وردپرس هستند و کدهایی هم به صورت عمومی و قابل استفاده در تمام سیستم های مدیریت محتوا هستند. اما بهترین کدهایی که هر سایت وردپرسی به ان نیاز دارد. کدهای شماره ۲۱ ، ۲۰ و ۱۹ هستند شما میتوانید از سایر کد های هم استفاده کنید ، اما بسته به نیاز و سطح فعلی سایت شما باید با دقت از این کد ها استفاده کرد.

 

امیدوارم مقاله پیش روی شما مورد توجه شما قرار گرفته باشد ، تمام تلاش خود را به کار گرفتیم تا موارد مهم و کاربردی را به شما ارائه دهیم و در صورت هر گونه سوال یا مشکل میتوانید از قسمت نظرات سایت مسئله خود را مطرح کنید ، قطعا در کوتاه ترین زمان ممکن به سوال شما پاسخ خواهیم داد. 

اگر شما به بهینه سازی سایت خود اهمیت میدهید پیشنهاد میکنیم دوره بهینه سازی و افزایش سرعت وب سایت را تهیه کنید در این دوره به طور کامل موضوع بهینه سازی سایت را توضیح دادیم و شما میتوانید ۲۹۲ دقیقه آموزش کامل وجامع را در اختیار داشته باشید و هم وب سایت خود را بهینه سازی و استاندارد کنید و هم از این تخصص در جهت کسب درآمد خود استفاده کنید.

برای مطالعه بیشتر میتوانید بر روی لینک کلیک کنید

موفق باشید
تیم تولید محتوا وب سایت کارسازشو

همیشه علاقمند بودم که در یک وب سایت به صورت کامل هر آنچه برای راه اندازی یک کسب و کار اینترنتی نیاز هست ، راه اندازی کنم تا اگر شخصی به حوزه کسب درآمد از اینترنت و راه اندازی کسب وکار اینترنتی علاقه مند بود ، بتواند به راحتی تمام نیاز های خود را در یک سایت پیدا کند. امروز تمام تلاش من و تیم کارسازشو بر این اصل استوار هست

میخواهم عضو شوم

اگر می‌خواهید از آخرین و محبوب‌ترین مقالات ما در ایمیل خود مطلع شوید، همین الان ایمیل خود را در کادر زیر وارد کنید به هیچ وجه از ایمیل های خسته کننده تبلیغاتی خبری نسیت ...

تعداد علاقه‌مندانی که تاکنون عضو خبرنامه ما شده‌اند

۱۱۳۴

ممکن است علاقه مند باشيد :

منتظر ثبت نظر شما هستیم :

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

۲ دیدگاه برای این مطلب ثبت شده است

  1. محمدصادق راستگو
    8:08 2019/07/18

    سلام
    اینو ( تعیین صفحات سفارشی و ویژه برای خطاهای سایت) چطور میشه انجام داد ، باید کد html زد یا میشه از تمپلیت های آماده هم استفاده کرد؟
    ممنون میشم راهنمایی کنید

    • وحید طهماسبی
      1:31 2019/07/18

      سلام خدمت شما کاربر محترم
      بله میشه از تمپلیت های آماده هم استفاده کرد ، و فقط کافیه در مسیر مورد نظر که اشاره شد قرار بدیم و ادرس رو مشخص کنیم
      موفق باشید