دیدم این تاپیک خوابیده گفتم یک آموزش کلی و کد در اختیار برنامه نویسان عزیز بذارم . خیلی کم دیده می شن که از اچ تی اکسس استفاده می کنن که در اشتباه هستند و منم تلاش می کنم تا بلکه چند نفری بهبود پیدا کنند .
خب بریم روی آموزش :
چنین آدرس هایی داریم که می خواییم نام دامنشون رو عوض کنیم
http://domain.com/cgi-bin/38837728.cgi
یـــــــــــــــــا
http://www.domain.com/cgi-bin/38837728.cgi
که می خواییم آدرس دامین تبدیل بشه به :
http://reza.net/cgi-bin/abc/38837728.cgi
میاییم از این کد استفاده می کنیم :
RewriteEngine on
RewriteCond %{SERVER_NAME} www.domain.com|domain.com
RewriteRule ^/?cgi-bin/38837728.cgi http://reza.net/cgi-bin/abc/38837728.cgi [R=301,L]
================================================== =====================================
در اینجا می تونید آدرس هایی که پسوند آنها php میباشد رو به html تبدیل کنید :
RewriteRule ^(.*)\.php$ /$1.html [R=301,L]
و برعکس
RewriteRule ^(.*)\.html$ $1.php [R=301,L]
================================================== =====================================
در اینجا شرط میذاریم و می گیم اگر ساعت 16 شد که همون 4 بعداز ظهر میشه سایت رو deny all access کن یا ساده تر بگم مسدود کردن دسترسی در ساعت خاصی از روز
Options +FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteCond %{TIME_HOUR} ^16$
RewriteRule ^.*$ - [F,L]
================================================== =====================================
در اینجا می گیم در آدرس ها هر جا _ underscores یا همون آندرلاین داره رو به خاطر منفی خوردنش در سئو بیا و به - دش تبدیل کن
Options +FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteRule !\.(html|php)$ - [S=4]
RewriteRule ^([^_]*)_([^_]*)_([^_]*)_([^_]*)_(.*)$ $1-$2-$3-$4-$5 [E=uscor:Yes]
RewriteRule ^([^_]*)_([^_]*)_([^_]*)_(.*)$ $1-$2-$3-$4 [E=uscor:Yes]
RewriteRule ^([^_]*)_([^_]*)_(.*)$ $1-$2-$3 [E=uscor:Yes]
RewriteRule ^([^_]*)_(.*)$ $1-$2 [E=uscor:Yes]
RewriteCond %{ENV:uscor} ^Yes$
RewriteRule (.*) http://abc.com/$1 [R=301,L]
================================================== =====================================
یک دستور امنیتی :
جلوگیر از اجرا شدن کدها توسط مرورگر زمانی که یک درخواست با X-moz ارسال می شه
Stop browser prefetching
RewriteEngine On
SetEnvIfNoCase X-Forwarded-For .+ proxy=yes
SetEnvIfNoCase X-moz prefetch no_access=yes
# block pre-fetch requests with X-moz headers
RewriteCond %{ENV:no_access} yes
RewriteRule .* - [F,L]
================================================== =====================================
جلوگیری از سرقت فایل های تصویری وب سایت و سرقت پهنای باند شما
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?abc.com/.*$ [NC]
RewriteRule \.(gif|jpg|swf|flv|png)$ /feed/ [R=302,L]
================================================== =====================================
مانع از دسترسی کاربر به فایل های داخل پوشه .
RewriteEngine On
RewriteBase /
RewriteCond %{THE_REQUEST} ^.+$ [NC]
RewriteRule .* - [F,L]
================================================== =====================================
مانع از دسترسی کاربر به زیر پوشه ها
Deny access to anything in a subfolder
.
RewriteEngine On
RewriteBase /
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /([^/]+)/.*\ HTTP [NC]
RewriteRule .* - [F,L]
================================================== =====================================
اینم یک کد بسیار ساده و کارآمد
درخواست های داخلی سایت اگر تا حد 10 درخواست رسید یک پیام نمایش بده و جلوگیری کنه
RewriteCond %{ENV:REDIRECT_STATUS} 200
RewriteRule .* - [L]
اینم توضیح خارجیش چون شاید یه کم بد توضیح داده باشم:
An error message related to this isRequest exceeded the limit of 10 internal redirects due to probable configuration error. Use 'LimitInternalRecursion' to increase the limit if necessary. Use 'LogLevel debug' to get a backtrace.or you may seeRequest exceeded the limit,probable configuration error,Use 'LogLevel debug' to get a backtrace, orUse 'LimitInternalRecursion' to increase the limit if necessary
================================================== =====================================
اینم چند تا کد امنیتی در برابر درخواست های مخرب کاربر
برای محافظت از درخواست های مخرب و دیگر رفتار استثماری بررسی می شود.
RewriteEngine On
RewriteCond %{THE_REQUEST} ^.*(\\r|\\n|%0A|%0D).* [NC]
RewriteRule ^(.*)$ - [F,L]
================================================== =====================================
یک چیز خیلی جالب که بهش برخوردیم و توضیح می دم.
در موتور جستجو گر گوگل ، Crauler ها کاربرانی که از سایت هایی به سایت شما میان ، آدرس هاشون ذخیره می شه و خیلی هم روی امتیاز دادن مثبت تاثیر داره و اگر آدرس های ذخیره شده از کلماتی که ناشایست بوده و از نظر طراحان امتیاز منفی می خوره استفاده شود باید از چنین کلماتی جلوگیری کنیم و آدرس های آنها رو قبل از ورود به سایت فیلتر کنیم تا از منفی خوردن در سئو جلوگیری شه .
همه جا از امنیت HTTP_REFERER بد گفتن از تابع RewriteCond میاییم و امنیتش رو برقرار می کنیم:
بعد کلماتی که مایلید فیلتر شود رو تعریف می کنیم
poker drugs پوکر - مواد مخدر و ........
و در آخر عملیات رو اعمال می کنیم
RewriteEngine On
RewriteCond %{HTTP_REFERER} ^(.*)(<|>|'|%0A|%0D|%27|%3C|%3E|%00).* [NC,OR]
RewriteCond %{HTTP_REFERER} ^http://(www\.)?.*(-|.)?adult(-|.).*$ [NC,OR]
RewriteCond %{HTTP_REFERER} ^http://(www\.)?.*(-|.)?poker(-|.).*$ [NC,OR]
RewriteCond %{HTTP_REFERER} ^http://(www\.)?.*(-|.)?drugs(-|.).*$ [NC]
RewriteRule ^(.*)$ - [F,L]
================================================== =====================================
جلوگیری از سرقت کوکی :
RewriteEngine On
RewriteCond %{HTTP_COOKIE} ^.*(<|>|'|%0A|%0D|%27|%3C|%3E|%00).* [NC]
RewriteRule ^(.*)$ - [F,L]
جلوگیری از درخواست های مخرب :
RewriteEngine On
RewriteCond %{REQUEST_URI} ^.*(,|;|:|<|>|">|"<|/|\\\.\.\\).* [NC,OR]
RewriteCond %{REQUEST_URI} ^.*(\=|\@|\[|\]|\^|\`|\{|\}|\~).* [NC,OR]
RewriteCond %{REQUEST_URI} ^.*(\'|%0A|%0D|%27|%3C|%3E|%00).* [NC]
RewriteRule ^(.*)$ - [F,L]
محافظت از سرورتون در برابر پرس و جو ها :
RewriteEngine On
RewriteCond %{QUERY_STRING} ^.*(localhost|loopback|127\.0\.0\.1).* [NC,OR]
RewriteCond %{QUERY_STRING} ^.*(\.|\*|;|<|>|'|"|\)|%0A|%0D|%22|%27|%3C|%3E|%00 ).* [NC,OR]
RewriteCond %{QUERY_STRING} ^.*(md5|benchmark|union|select|insert|cast|set|dec lare|drop|update).* [NC]
RewriteRule ^(.*)$ - [F,L]
اینم بن کردن آی پی در رنج خاص :
RewriteEngine On
RewriteCond %{REMOTE_ADDR} ^123\.$ [OR]
RewriteCond %{REMOTE_ADDR} ^456\.789\.$ [OR]
RewriteCond %{REMOTE_ADDR} ^789\.123\.456\.$ [OR]
home page کردن آدرس وب سایت خودتون :
RewriteCond %{HTTP_USER_AGENT} ^Mozilla.*
RewriteRule ^/$ /homepage.max.html [L]
RewriteCond %{HTTP_USER_AGENT} ^Lynx.*
RewriteRule ^/$ /homepage.min.html [L]
RewriteRule ^/$ /homepage.std.html [L]
RewriteRule ^(.*)$ - [F,L]
لطفا از سوالات پیش و پا افتاده پرهیز کنید چون در اوایل پست ها آموزش لازم داده شده .
و در آخر شرمنده اگر غلط املایی یا از کلمات درستی استفاده نکردیم . قصدمون فقط آموزش دادن و کمک به برنامه نویسان عزیز بود .
امیدوارم مثبت واقع شده باشد.
موفق باشید
شادزی