PDA

View Full Version : آموزش: 10 کد مفید برای htaccess ! ( قسمت اول )



siavashsay
شنبه 14 بهمن 1391, 17:52 عصر
1- اضافه کردن slash به آخر آدرس سایت
وجود slash در آخر آدرسهای سایت در بعضی موارد به SEO شدن سایتان از لحاظ موتورهای جستجو کمک میکند ، با استفاده از این کد می توانید به طور خودکار Slash را به آخر آدرس سایتتان اضافه کنید .


RewriteCond %{REQUEST_URI} /+[^\.]+$
RewriteRule ^(.+[^/])$ %{REQUEST_URI}/ [R=301,L]

2- جلوگیری از استفاده مستقیم از عکسها و فایلهای شما در سایتهای دیگر
با استفاده از این کد می توانید استفاده مستقیم بقیه ی سایتها را از منابع سایتتان محدود کنید. قرار دادن عکس آپلود شده در سرور شما در دیگر سایتها ممکن است موجب مصرف بی مورد ترافیک شود ، در کد زیر بجای mysite دامین خودتان را وارد کنید و تمامی hotlink ها را به عکس دیگری مثلا nohotlink.jpg روانه کنید .


RewriteEngine On
#Replace ?mysite\.com/ with your blog url
RewriteCond %{HTTP_REFERER} !^http://(.+\.)?mysite\.com/ [NC]
RewriteCond %{HTTP_REFERER} !^$
#Replace /images/nohotlink.jpg with your "don't hotlink" image url
RewriteRule .*\.(jpe?g|gif|bmp|png)$ /images/nohotlink.jpg [L]

3- ارجاع خوانندگان سایت شما از طریق موبایل به صفحه ی مخصوص
با استفاده از این کد می توانید بازدیدگنندگانی که از طریق موبایل به سایت شما آمده اند را به ورژن مخصوص موبایل به آدرس yoursite.com/m مثلا ارجاع دهید .


RewriteEngine On
RewriteCond %{REQUEST_URI} !^/m/.*$
RewriteCond %{HTTP_ACCEPT} "text/vnd.wap.wml|application/vnd.wap.xhtml+xml" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "acs|alav|alca|amoi|audi|aste|avan|benq|bird|blac|b laz|brew|cell|cldc|cmd-" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "dang|doco|eric|hipt|inno|ipaq|java|jigs|kddi|keji| leno|lg-c|lg-d|lg-g|lge-" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "maui|maxo|midp|mits|mmef|mobi|mot-|moto|mwbp|nec-|newt|noki|opwv" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "palm|pana|pant|pdxg|phil|play|pluc|port|prox|qtek| qwap|sage|sams|sany" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "sch-|sec-|send|seri|sgh-|shar|sie-|siem|smal|smar|sony|sph-|symb|t-mo" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "teli|tim-|tosh|tsm-|upg1|upsi|vk-v|voda|w3cs|wap-|wapa|wapi" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "wapp|wapr|webc|winw|winw|xda|xda-" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "up.browser|up.link|windowssce|iemobile|mini|mmp" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "symbian|midp|wap|phone|pocket|mobile|pda|psp" [NC]
#------------- The line below excludes the iPad
RewriteCond %{HTTP_USER_AGENT} !^.*iPad.*$
#-------------
RewriteCond %{HTTP_USER_AGENT} !macintosh [NC] #*SEE NOTE BELOW
RewriteRule ^(.*)$ /m/ [L,R=302]

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


ForceType application/octet-stream
Header set Content-Disposition attachment

ForceType application/octet-stream
Header set Content-Disposition attachment

5- استفاده از فونت دیگر سایتها در فایرفاکس
هنگام embed کردن فونت با آدرس خارجی ، فایرفاکس از انجام آن جلوگیری می کند ، برای اینکه این مشکل حل شود از این کد میتوانید استفاده کنید . کافیست بجای yourdomain.com دامنه مبدا فونت را وارد کنید .


Header set Access-Control-Allow-Origin "http://yourdomain.com"

6- افزایش سرعت اجرای سایت با ایجاد Cash در htacess
با توجه به زمان های آپدیت سایتتان میتوانید از کد زیر برای Cash کردن فایلهایی که میخواهید استفاده کنید ، اینکار علاوه بر افزایش سرعت بالا آمدن سایت ، به سرور هم فشاری عملا وارد نخواهد شد و فایلهای موجود در cash را حین چندباره سایت اجرا خواهد کرد . فقط باید به زمان انقضای آن توجه داشته باشید که درست تنظیم شود .


# 1 YEAR

Header set Cache-Control "max-age=29030400, public"

# 1 WEEK

Header set Cache-Control "max-age=604800, public"

# 2 DAYS

Header set Cache-Control "max-age=172800, proxy-revalidate"

# 1 MIN

Header set Cache-Control "max-age=60, private, proxy-revalidate"

7- عدم نمایش خطاهای php و ذخیره آن در فایل log
عدم نمایش خطاهای php به کاربران بسیار امکان امنیتی و مفیدی است . مخصوصا اگر آن بازدیدکننده هکر باشد . چون بسیاری از عملیات هک از طریق پاسخ سایت به بعضی درخواست ها انجام میشود . میتوان از طریق فایل php.ini هم نمایش پیغامهای خطای php را غیرفعال کرد ، اما با htaccess میتوان از خطاها log گرفت و برای اصلاح سایت از آنها استفاده کرد .


# display no errs to user
php_flag display_startup_errors off
php_flag display_errors off
php_flag html_errors off
# log to file
php_flag log_errors on
php_value error_log /location/to/php_error.log

8- اجرای دستورات php در فایل جاواسکریپت
بسیار مفید و کاربردی خواهد بود اگر بتوان در فایلهای js هم php اجرا کرد . مثلا اتصال به دیتابیس و …


AddType application/x-httpd-php .js
AddHandler x-httpd-php5 .js

SetHandler application/x-httpd-php

( دو مورد آخر مخصوص وردپرس می باشد )
9 – redirect کردن انواع خوراکها به یک نوع خوراک مثلا ارجاع OPM به RSS
خوراکها انواع مختلفی دارند atom|rdf|rss|rss2 اگر میخواهید همه ی اینها به RSS2 ارجاع بدهند از این کد استفاده کنید .


RedirectMatch 301 /feed/(atom|rdf|rss|rss2)/?$ http://example.com/feed/
RedirectMatch 301 /comments/feed/(atom|rdf|rss|rss2)/?$ http://example.com/comments/feed/

10 – جلوگیری از اسپم کامنتها در وردپرس با htacess
این کد دسترسی فایل wp-comments-post.php را برای روباتهای اسپمر میبندد .


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

منبع : http://taraah.ir