PDA

View Full Version : ترفندهای .htaccess



رضا قربانی
یک شنبه 08 اسفند 1389, 09:27 صبح
با سلام خدمت تمامی دوستان برنامه نویس

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

برای شروع فکر میکنم همه بدونید که فايل .htaccess يا Distributed Configuration Files در واقع فايلهاي مخصوص كنترل آپاچي هست مکان خاصی ندارند روی هر شاخه و زیر شاخه تاثیر میزاره در واقع در کنار فایل های معمولی مثل php ,html قرار میگیره یعنی کاملا در دسترس هستند نام این فایل ها .htaccess هست یعنی صرفا همین -البته میشه یه سری تنظیمات رو دستکاری کرد و نام رو تغییر داد- اين فايلها از تگهاي مخصوص آپاچي استفاده ميكنن البته cgi script هم مي پذيرن

کاربردها :


كاربرد اول- تغيير صفحات خطا

برای نمایش صفحات خطا مثل 404 يا 500 و ... میتونید صفحات دلخواه خودتون رو طراحي و به اين طريق نمایش بدید
مسلما خیلی حرفه ای هست وب سایت هایی که برای کوچکترین موارد پیش بینی صورت بگیره

کد:


ErrorDocument 404 /404.html
ErrorDocument 500 /500.html

كاربرد دوم- نمایش پسوند دلخواه صفحات (add mime type)

يك راه امنيتي كه من واقعا پيشنهاد ميكنم واسه حفاظت از اسكريپت هاي php شما اينه كه اونا php نباشن !! بله يعني مثلا asp يا jsp باشن اينطوري یه مقدار مطلب پیچیده میشه برای تشخیص

کد:


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

Addtype ميگه كه ما ميخوايم يه فرمت جديد بشناسونيم بعد نوع اون فايلهاي خاص با فرمت دلخواه رو ميگيم مثلا image/png يا text/css بعد ميگيم كه چه فرمتي رو از اين به بعد به عنوان نوعي كه گفتيم بشناس
اما فرض كنيد ميخوايد از shtml , ssl در سايتتون استفاده كنيد و نياز به شناساندن اين فرمتها به آپاچي داريد :

کد:


AddType text/html .shtml
AddHandler server-parsed .shtml
Options Indexes FollowSymLinks Includes
كاربرد سوم- redirect ریدایرکت

کد:


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

توضيح: در اينجا مرورگري كه درخوست فايل test.html رو در شاخه dirold داشت بره به آدرس
http://site.com/DirNew/new.html

دوستانی که در زمینه SEO فعالیت دارند میدونند که این ریدایرکت چقدر موثره

كاربرد چهارم - IndexIgnore

بسیاری از هكرها بعد از نفوذ با browse كردن در دايركتوريهاي سايت شما و گشتن به دنبال فولدرها يا فايلها با پرميشن مطلوب كارشونو تكميل ميكنن و البته خيلي ها از اول از روش ديد زدن فولدرهايي كه حاوي موتور اسكريپت ها و اطلاعات با ارزشي هستن مثلا فايل config رو در بردارن به سايت نفوذ ميكنن
programer ها جهت جلوگيري از اين كار ميان و يه index.html خالي درست ميكنن اما با اين كد ميشه يه صفحه مربوط به خالي بودن فولدر رو نشون داد يعني هيچي تو اين شاخه نيست در حالي كه شاخه ميتونه پر فايل باشه ...

خیلی جالبه الان میتونم چندتا سایت پربازدید رو معرفی کنم که این مشکل رو دارند نکته خیلی جالبتر اینه که من مدتی پیش یک اسکریپت به دستم رسید داشتم ویرایشش میکردم و توابع اسمارتی رو بررسی میکردم که دیدم چندتا فایل کم هست یعنی چندتا صفحه نافص بود هرچقدذر نوشتم نتونستم اتصالات رو پیدا کنم تا اینکه برای تست رفتم وارد سایت تولید کننده این نرم افزار شدم از اونجایی که نسخه دمو روی سرور Run شده بود رفتم به دایرکتوری موردنظر با کمال تعجب دسترسی در پوشه تمپلیت مربوط به فایل های TPL باز بود منم با کمال لطف فایل های موردنظر رو برداشتم به همین راحتی

شاید در ظاهر استفاده از این طرفند خیلی پیش پا افتاده باشه اما میدونم خیلی از افراد به آسونی از کنارش میگذرند

کد:


IndexIgnore *

- اگه مثلا خواستيد فقط يه نوع فايل محافظت شه مثلا فقط فايلهاي pdf مينويسييد :

کد:


IndexIgnore application/pdf

كاربرد پنجم - از index.php يا index.html خسته نشديد؟

با اين كد هم ميشه به وب سرور امر كرد كه كدام فايل به عنوان صفحه نخست نمایش داده بشه

کد:


DirectoryIndex homearea.php
homearea.php رو به هر فايلي با هر نامي تغيير بديد.
- DirectoryIndex يه فاصله و بعد نام فايل با هر فرمتي


كاربرد ششم - DefaultCharset

بسیاری از مشکلات دوستان نمایش انکودینگ صفحات اینترنتی هست با دستور زیر میتونید آپاچی رو مقید کنید تا Charset موردنظر شما رو ایجاد کنه

کد:


AddDefaultCharset utf-8
كاربرد هفتم - deny from all

جهت حفاظت فایل های باز ارزش ولي محافظت نميشن ( مثلا mt-config.cgi ) اين كد ميگه كه هيچ مرورگر ي نتونه سورس اينها رو ببينه

کد:


<Directory />
Order Deny,Allow
Deny from All
</Directory>

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

کد:

order allow,deny
deny from 123.45.6.7
deny from 012.34.5.
allow from all

كاربرد هشتم -امنیت بیشتر


دو تا كد امنيتيه ديگه

کد:


<Limit POST PUT DELETE>
</Limit>

کارش که مشخصه فکر کنم

کد:


<LimitExcept POST GET>
</LimitExcept>

شما به بومبرينگ اعتقاد داريد ؟ اين كد جلوي FSOCKOPEN رو میگیره

كاربرد نهم - rewrite engine

اول از همه Apache RewriteEngine بايد در وب سرور شما فعال باشه .
اگه دسترسي داريد ميتونيد اين خط رو در httpd.conf اضافه كنيد :

کد:


LoadModule rewrite_module modules/mod_rewrite.so
اگرم بهش دسترسي نداريد اين كد هم شايد بتونه كار كنه بايد تو همون htaccess كپي كنيد

کد:


<IfDefine ReverseProxy>
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule proxy_module modules/libproxy.so
</IfDefine>


اين همون چيزيه كه واسه ساب دومين مجازي هم به كار ميبريم من يه مثال سادشو واستون ميزنم
فرض كنيد يه وبلاگ داشتيد با اين آدرس http://www.ABC.com/ABC (http://www.majidonline.com/siavashmusic)
حالا بلاگتون آدرسش عوض شده به اين http://www.ABC.com/AAAAA (http://www.majidonline.com/Majid)
البته دقت داشته باشيد اين هيچ ربطي به redirct نداره
**این مورد رو دوستانی که به SEO وارد هستند میتونند متوجه بشن که ریدایرکت با ریرایت خیلی فرق داره از نظر نتیجه ای که در اینده برای ما در برخواهد داشت

کد:


RewriteEngine on
RewriteRule ^AAAA(/.*)?$ /ABC$1 [R=permanent]

یکی از بهترین امکاناتی که اپاچی بهتون میده بهش mod_rewrite هستش که باعث میشه سایتتون خیلی تمیزتر بنظر بیاد و به عبارتی SEO بشه !!!
تو هرجایی که شما بخواید از mod_rewrite استفاده کنید نیاز دارید که کد

کد:

Options +FollowSymlinks
RewriteEngine on
رو در فایل تون قرار بدید
بزارید یک مثال بزنم , میخوایم تمام صفحات php رو تبدیل کنیم به html :

کد:


Options +FollowSymlinks
RewriteEngine on
RewriteRule ^(.*).htm$ $1.php [nc]

در دستور بالا ما گفتیم هر فایل php بود تبدیلش کن به .htm ولی این دلیل براین نیست که فرمت فایل عوض میشه نه!!! بلکه به هردو صورت دسترسی به فایل امکان پذیر هست برای مثال اگه یه فایل test.php داشته باشیم هم میتونیم با اسم test.htm بهش دسترسی پیدا کنیم و هم از test.php .
[nc] : این دستور یعنی No Case یا همون case-insensitive

فرض میکنیم اسم دومینمون رو عوض کردیم ولی فایل هامون همون قبلی ها هستن و میخوایم هرکسی تو دومین اولی یک فایل رو فراخوانی کرد ما همون فایل رو تو دومین دوم صدا بزنیم اینجور عمل میکنیم :


کد:


Options +FollowSymlinks
rewriteengine on
rewriterule ^(.+).htm$ http://mehr-design.ir/$1.php [r=301,nc]

301 یعنی مستقیما ریدایرکت شده , دستور بالا زمانی خوبه که یه سایت قدیمی داریم حالا میخوایم update کنیم این کار باعث میشه موتورهای جستجوگر نتایج ما رو اتوماتیک آپدیت کنند

اینجا رو ببینید »

کد:


Options +FollowSymlinks
RewriteEngine on
RewriteRule ^myfiles/(.+)/(.+).zip download.php?section=$1&filename=$2 [nc]

بزارید ساده بگم اگه شما عبارت (.+) رو مساوی با 1$ فرض کنیم ( 1$=(.+) )ما میتونیم چندین بار از این عبارت استفاده کنیم به این صورت که بار اول که از (.+) استفاده میکنیم مساوی با 1$ میگیریم در دفعه دوم مساوی با 2$ میگیریم و همینطور الا اخر .
در مثال بالا برای مثال اگه ما یه فایل در مسیر

کد:


http://mehr-design.ir/download.php?section=appz&filename=ABC

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

کد:


http://mehr-design.ir/myfiles/appz/ABC.zip


مثال :

کد:


Options +FollowSymlinks
RewriteEngine on
RewriteRule ^blog/([0-9]+)-([a-z]+) http://mehr-design.ir/weblog/index.php?archive=$1-$2 [nc]

حالا اگه ادرس ارشیو وبلاگ ما بصورت :

کد:


http://mehr-design.ir/weblog/index.php?archive=2007-sep

باشه تبدیل میشه به :

کد:


http://persiandev.net/blog/2007-sep
با کمی Regular Expression میتونید ادرس هاتون رو خیلی حرفه ای تر کنید و زیباتر

راهنما دستورات :


کد:

. Any single character
[chars] یکی ار کاراکترها میتونه این باشه برای مثال [A]
[^chars] هیج یک از این کاراکتر ها نباشه برای مثال [^A]
text1|text2 همون کار or رو انجام میده

Quantifiers:
? میتونه یک کاراکتر باشه و یا هیچ کاراکتری
* هرچیزی میتونه باشه حتی اگه چیزی وجود نداشته باشه
+ حداقل یک کاراکتر وجود دارد

Grouping:
(text) برای ساختن گروه بکار میره

Anchors:
^ شروع
$ پایان

Escaping:
char برای مثال برای درنظر نگرفتن علائمی مثل [] یا . یا غیره هست در این مواقع به عنوان دستور در نظر نمیگیره
مثال

کد:


Options +FollowSymlinks
RewriteEngine On
RewriteRule ^get(.*) /public/download/download.php$1

در مثال بالا ما گفتیم هر ادرسی که بعد از download.php قرار گرفت تبدیلش کنه به ادرس برای مثال
اگه ادرسمون اینجوری باشه :

کد:

http://mehr-design.ir/downloads/download.php?myfile=ABC.zip تبدیل میشه به :

کد:

http://mehr-design.ir/Get?myfile=ABC.zip در مثال بعدی میخوایم دسترسی به پوشه هارو بگیریم از کاربر

کد:

Options +FollowSymlinks
RewriteEngine on
RewriteRule ^(.*)$ deny.php [nc]

تو قسمت بالا اگه کاربر بخواد به هر نحوی وارد یه پوشه بشه ریدایرکت میشه به deny.php

بزارید در مثال بعدی کاری کنیم که فقط به فایل های خاصی دسترسی داشته باشه و بجز اون هر فایلی خواست باز کنه ارور بده :
کد:


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

تو دستور بالا ما گفتیم فقط به فایل هایCss Js و فایل file.php اجازه بده که توسط کاربر فراخوانی بشه در غیر اینصورت ریدایرکت کنش به پوشه /deny/ .


HotLinking مثال

کد:


Options +FollowSymlinks
# no hot-linking
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?mehr-design\.ir/ [nc]
RewriteRule .*.(gif|jpg|png)$ http://mehr-design.ir/red.jpg [nc]

خوب فکر نمیکنم زیاد لازم به توضیح باشه کد بالا هر درخواستی رو که برای لود کردن عکس با فرمت gif,jpg,png از یه سایت دیگه باشه عکس http://mehr-design.ir/red.jpg نمایش داده میشه .

اضافه کردن WWW به ادرس سایت :
این کد این کار رو براتون میکنه :

کد:


Options +FollowSymlinks
RewriteEngine on
rewritecond %{http_host} ^www.mehr-design.ir [nc]
rewriterule ^(.*)$ http://mehr-design.ir/$1 [r=301,nc]

در واقع یه نوع ریدایرکت هستش البته از نوع peremantly moved .

ترجمه سایت :

کد:


Options +FollowSymlinks
RewriteEngine on
RewriteRule ^(.*)-fr$ http://www.google.com/translate_c?hl=fr&sl=en&u=http://mehr-design.ir/$1 [r,nc]
RewriteRule ^(.*)-de$ http://www.google.com/translate_c?hl=de&sl=en&u=http://mehr-design.ir/$1 [r,nc]
RewriteRule ^(.*)-es$ http://www.google.com/translate_c?hl=es&sl=en&u=http://mehr-design.ir/$1 [r,nc]
RewriteRule ^(.*)-it$ http://www.google.com/translate_c?hl=it&sl=en&u=http://mehr-design.ir/$1 [r,nc]
RewriteRule ^(.*)-pt$ http://www.google.com/translate_c?hl=pt&sl=en&u=http://mehr-design.ir/$1 [r,nc]

در کد بالا در صورتی که به اخر یک لینک یا ادرس یکی از کلمات de , -fr , -pr, -it- اضافه بشه توسط گوگل میتونید ترجمه کنید .
عوض کردن نوع لینک برای مثال نوع ادرس عکس :

کد:


Options +FollowSymlinks
RewriteEngine on

RewriteRule ^pictures/(.*) http://mehr-design.ir/getpicture.php?$1 [r]

خاموش و روشن کردن رجیستر گلوبال جهت اینستال برخی از برنامه ها

کد:


php_flag register_globals on



امیدوارم که این آموزش به دردتون خورده باشه :چشمک:
موفق باشید دوستان

رضا قربانی
یک شنبه 29 اسفند 1389, 10:48 صبح
یک مقاله آموزشی بسیار جالب و آموزنده در مورد Mod_rewrite

خیلی راحت کمکتون می کنه تا با Mod_rewrite ها آشنا بشید و چطور اون رو در لوکال هاست فعالش کنید

موفق باشید

armintirand
چهارشنبه 04 خرداد 1390, 13:20 عصر
دوست عزیز من برای خطای ۴۰۴ میخواستم تست کنم نتونستم
اولا نوشتن فقط این دستور توی فایل.htaccessکافیه؟
ErrorDocument 404 /404.html
ثانیا من چون این کد برام جواب نداد اومدم یک فایل با نام404.html ساختم و اونو کنار فایلهای .htaccess و php گذاشتم بازم جواب نداد بعد اومدم داخل فایل .htaccess رو ویرایش کردم و مسیر دقیق فایل 404.html رو دادم اینبار کار کرد ولی اون پیامی که من توی فایل 404.html نوشته بودم رو نشون نداد فقط مسیر آدرس اونو برام آورد.
میشه یک نمونه کامل برای همین 404 بگید.

ghasemweb
چهارشنبه 04 خرداد 1390, 16:26 عصر
من هم تست کردم جواب نداد

Mahdi.Spirit
چهارشنبه 04 خرداد 1390, 19:33 عصر
دوست عزیز من برای خطای ۴۰۴ میخواستم تست کنم نتونستم
اولا نوشتن فقط این دستور توی فایل.htaccessکافیه؟
ErrorDocument 404 /404.html
ثانیا من چون این کد برام جواب نداد
...


من هم تست کردم جواب نداد
كد مشكلي نداره ،‌ فقط كافيه همون رو توي فايل htaccess‌ كپي كنيد و يه فايل هم با همون اسم html.404 ايجاد كنين كنارش بزارين

armintirand
پنج شنبه 05 خرداد 1390, 17:25 عصر
دوست عزیز کارنمیکنه یعنی نتیجه ای که من میخوام رو نمیده!
من تو فایل 404.html پیامی ساختم که میگه این صفحه موجود نیست و کاربر رو بعد 2 ثانیه به صفحه اول سایت میبره ولی به جای اون فقط مسیر فایل 404 نشون داده میشه!
شما اگه میگی میشه نمونه انجام شدش رو بذار تا یاد بگیریم.

Mahdi.Spirit
پنج شنبه 05 خرداد 1390, 20:21 عصر
دوست عزیز کارنمیکنه یعنی نتیجه ای که من میخوام رو نمیده!
من تو فایل 404.html پیامی ساختم که میگه این صفحه موجود نیست و کاربر رو بعد 2 ثانیه به صفحه اول سایت میبره ولی به جای اون فقط مسیر فایل 404 نشون داده میشه!
شما اگه میگی میشه نمونه انجام شدش رو بذار تا یاد بگیریم.
خب برای من کار میکنه !
ضمیمه کردم، بعد از 2 ثانیه میره به index.php

---------------------
پ.ن:
1- آدرس دهي فايل ضميمه رو تصحيح كردم
2-فايلها بايد در root كپي(extract) شود!

armintirand
جمعه 06 خرداد 1390, 10:01 صبح
شما یا این کد رو خودت ننوشتی یا خواستی منو کلاس بذاری!!
دوست عزیز فایل ایندکس شما اصلا لینک نداره که اگه روش کلیک کنیم و اگه مو جود نبود و ارور ۴۰۴ داد اونی که خودمون ساختیم رو بده.
در ضمن من با اضافه کردن یک لینک به فایل ایندکس شما بازم کار نکرد و ارور پیشفرض ۴۰۴ را داد.
لطفا بررسی کنید.
ممنون

mtchabok
جمعه 06 خرداد 1390, 10:34 صبح
عزیزان برای منم درست کار میکنه .
مواردی رو که باید رعایت کنید اینهاس :
- ادرس رو سعی کنید که کامل وارد کنید : اگه فایل خطای شما در آدرس http://localhost/test/404.html قرار داره میتونید هم به همون صورت و هم /test/404.html وارد کنید .
- سعی کنید آدرستون رو در یه ' قرار بدید . البته فرقی ندارها برای محکم کاری .

Mahdi.Spirit
جمعه 06 خرداد 1390, 12:01 عصر
شما یا این کد رو خودت ننوشتی یا خواستی منو کلاس بذاری!!
دوست عزیز فایل ایندکس شما اصلا لینک نداره که اگه روش کلیک کنیم و اگه مو جود نبود و ارور ۴۰۴ داد اونی که خودمون ساختیم رو بده.
در ضمن من با اضافه کردن یک لینک به فایل ایندکس شما بازم کار نکرد و ارور پیشفرض ۴۰۴ را داد.
لطفا بررسی کنید.
ممنون
من نميدونم چرا اينقدر زود عصباني ميشيد؟ و فكر ميكنين همه يا دارن كلاس ميزارن يا ميپيچونن :متعجب: ضمنا كسي هم اينجا حقوق نميگيره كه حتما بياد جواب بده ،‌ هركسي اينجا هر چقدر دوست داره كمك ميكنه و معمولا همه سعي ميكنن به سوالا كامل (در حد كفايت) جواب بدن!
خب وقتي اين كد براي من كار ميكنه بيام بگم نميشه؟ بعدش مگه دو خط كد اونم فقط نوشتن چنتا كلمه توي خروجي كلاس گذاشتن داره كه بخوام خودم بنويسم يا كپي كنم:چشمک:
احتمالا مشكل كدتون اينه كه فايل htaccess رو توي root نميزاريد و توي فولدر ميزاريد بعد آدرس ها رو خوب نمينويسين،‌ اول همون فايلي كه دادم رو توي root‌ كپي كنيد و تست كنيد ولي اگر توي فولدر ميزاريد اين كاري كه دوستمون گفتن رو انجام بدين


مواردی رو که باید رعایت کنید اینهاس :
- ادرس رو سعی کنید که کامل وارد کنید : اگه فایل خطای شما در آدرس http://localhost/test/404.html قرار داره میتونید هم به همون صورت و هم /test/404.html وارد کنید .
- سعی کنید آدرستون رو در یه ' قرار بدید . البته فرقی ندارها برای محکم کاری .
مثلا اگر توي فولدر به اسم 404 گذاشتين فايل htaccess بايد اينطوري باشه


ErrorDocument 404 /404/404.html
يا
ErrorDocument 404 http://localhost/404/404.html

ضمنا اون لينك به صفحه اي كه موجود نباشه هم براي اينكه لازم نبود نزاشتم ،‌ شما توي آدرس بار يه چيز الكي بنويسيد تست كنيد
مثلا:


localhost/asdfghjkl

اميدوارم مشكلتون حل شده باشه

رضا قربانی
جمعه 06 خرداد 1390, 12:13 عصر
چقدر عصبانی


مشکلی نداره - این رو دقت داشته باشید که برای استفاده از این فایل باید آدرس ها رو بطور کامل بدید !!!! (حتی در فایل های php برای لینک ها یا فراخوانی استایل و جاوا و ...)
http://localhost/test/s.css

armintirand
جمعه 06 خرداد 1390, 13:01 عصر
شرمنده عمدی نیست من مدتی پیش چیزی از وب نمیدونستم تقریبا۱ سال پیش ولی به خاطر یه پیشنهاد کاری افتادم تو کار وب و چون وقت کمی برای یادگیری داشتم شدید مطالعه کردم ولی امان از اینکه آدم جویای مطلب باشه و مطلب نایاب!:گریه:

Mahdi.Spirit
جمعه 06 خرداد 1390, 13:09 عصر
آقا رضا (http://barnamenevis.org/member.php?151175-%D8%B1%D8%B6%D8%A7-%D9%82%D8%B1%D8%A8%D8%A7%D9%86%DB%8C) لطفا شما هم اوني كه آپلود كردم رو يه تست كن (با توضيحاتي كه دادم) ببين مشكلي داره؟!

رضا قربانی
جمعه 06 خرداد 1390, 14:09 عصر
آقا رضا (http://barnamenevis.org/member.php?151175-%D8%B1%D8%B6%D8%A7-%D9%82%D8%B1%D8%A8%D8%A7%D9%86%DB%8C) لطفا شما هم اوني كه آپلود كردم رو يه تست كن (با توضيحاتي كه دادم) ببين مشكلي داره؟!


بله مشکل داره

همون طور که گفتم باید کامل آدرس دهی کنید !!!!!!!!!!!!! چندین بار دارم همه جا می گم و مشکل شما و دوست عزیزمون هم همینه
فایل دوست گلم Mahdi.Spirit (http://barnamenevis.org/member.php?150376-Mahdi.Spirit) رو بگیرید (در صفحه قبلی) ، باید داخل فایل اچ تی اکسس اینطوری آدرس دهی کنید :
ErrorDocument 404 http://localhost/htaccess404/404.html

هم مشکل شما حل می شه و هم مشکل این دوستمون که یه کم اعصابش خورده و نمی دونه جریانش چیه .

صفحه 404 رو هم توی گوگل تصویرش رو سرچ کنید چیزای جالبی گیرتون میاد .
مانند :
http://geniusgeeks.com/blog/wp-content/uploads/2009/09/404.jpg

http://sensorymetrics.com/wp-content/uploads/2007/08/404.JPG

و ...


موفق باشید

Mahdi.Spirit
جمعه 06 خرداد 1390, 15:48 عصر
آقا رضای گل من كه مشكل نداشتم!
برای من كه كار میكرد
بعدش توی پست بعدی هم توضیح دادم كه یا باید كل اون چنتا فایلی كه گذاشتم رو توی root بزارن یا توی htaccess آدرس كامل رو بزارن

armintirand
جمعه 06 خرداد 1390, 15:48 عصر
ممنون از کمکتون.
بابا اینقدرا هم عصبی نیستم.
خیلی برای یاد گرفتمن عجله دارم شاید کسایی که برای کنکور فشرده درس میخونن به اندازه من اینقدر مطالعه نمیکنن.:لبخند:

رضا قربانی
جمعه 06 خرداد 1390, 17:29 عصر
آقا رضای گل من كه مشكل نداشتم!
برای من كه كار میكرد
بعدش توی پست بعدی هم توضیح دادم كه یا باید كل اون چنتا فایلی كه گذاشتم رو توی root بزارن یا توی htaccess آدرس كامل رو بزارن

آدرس دهی دیگه " یا " نداره . حتما باید کامل باشه .

شاید ورژن آپاچی شما بالاتر باشه و به این چیزا اهمیت نده !!! ولی درستش اینه که کامل آدرس دهی کنید چون همه جوره درست می زنه (چه ورژن پایین باشه چه ورژن بالاتر باشه چه توی هاست لینوکس بذارید ) مشکل این بود .
در غیر این صورت بسیار خوب و ساده برای دوستمون فایل آماده کردید و یه تشکر هم ازتون نکرد :لبخند:


armintirand (http://barnamenevis.org/member.php?110953-armintirand) عزیز مشکلت حل شد ؟ (ما آخر نفهمیدیم - انقدر کتاب نخون ، عملی بیشتر کار کن)

موفق باشید

armintirand
جمعه 06 خرداد 1390, 20:57 عصر
اقا ممنون اره حل شد فقط یک سوال با چیزایی که تو این فایل هست میشه امکانات محدود کردن مثل سایتهای دانلود محدود مثل رپید شیر رو ساخت؟

رضا قربانی
شنبه 07 خرداد 1390, 01:23 صبح
اقا ممنون اره حل شد فقط یک سوال با چیزایی که تو این فایل هست میشه امکانات محدود کردن مثل سایتهای دانلود محدود مثل رپید شیر رو ساخت؟

متوجه منظورت نشدم . می خوایی چی کار کنی ؟ چه عملی می خوایی واست انجام بده

armintirand
یک شنبه 08 خرداد 1390, 19:28 عصر
اخه گفته بودند برای امنیت سایت این کارها مناسبه میخواستم ببینم چه نوع امنیتی ایجاد میکنه؟
یک موضع جالب امروز ارور ۴۰۴ هاستم رو از طریق کنترل پنل فعال کردم روی فایرفاکس کار میکنه اما روی اینترنت اکسپلورر کار نمیکنه!

رضا قربانی
یک شنبه 05 تیر 1390, 14:35 عصر
با سلام خدمت تمامی دوستان

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

یه خواهشی ازتون دارم . ممنون می شم که پست های بی ربط نزنید .

اگر شما هم مطالبی در اختیار دارید ممنون می شم در اختیار عموم قرار بدید تا من و بقیه دوستان یاد بگیریم .

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

رضا قربانی
دوشنبه 06 تیر 1390, 10:09 صبح
Htaccess. یک فایل پیکر بندی برای وب سایت هایی است که از سرور آپاچی استفاده می کنند. وقتی این فایل در یکی از پوشه های وب سایت قرار می گیرد، وب سرور آپاچی بررسی می کند که چه دستوراتی در این فایل وجود دارد و بعد طبق این دستورات، آن قسمت از سایت که htaccess در آن قرار دارد را پیکر بندی می کند. این فایل می تواند برای فعال و یا غیر فعال کردن یک سری از توابع و ویژگی های وب سرور آپاچی مورد استفاده قرار بگیرد که می تواند ریدایرکت کردن یک صفحه یا نمایش پیغام های خطای رایج مانند: ارور 404 را شامل شود.
استفاده از این فایل در همه موارد پیشنهاد نمیشود زیرا امنیت وب سرور را تحت شعاع قرار می دهد. اما در مواقعی که سرور به صورت اشتراکی و اصطلاحا share شده خدمت رسانی می کند و تعداد زیادی سایت برروی آن قرار دارد پیشنهاد آن است که از فایل htaccess استفاده شود. زیرا هر سایت باید توانایی پیکر بندی قسمت مربوط به خود را دارا باشد.
نکته: به دلیل آنکه نحوه پیکربندی این فایل مانند پیکربندی فایل اصلی سرور (httpd.conf)است تصمیمات بر اساس شرایط اخذ می شود. البته تمامی امکانات httpd.conf را شامل نمی شود!
عبارت .htaccess"" خود یک نام فایل است و دقیقا به همین صورت مورد استفاده قرار می گیرد. پس نیازی به اضافه کردن چیزی قبل از "." نیست. و عبارت "file.htaccess" قابل قبول نمی باشد!
برای اعمال پیکر بندی و تغییرات مورد نظر(محدودیت دسترسی، ریدایرکت و...) فقط کافی است فایل htaccess را در یکی از پوشه های دلخواه قرار دهید تا وب سرور آپاچی پس از بررسی دستورات موجود در این فایل تغییرات را برروی پوشه و پوشه های زیر مجموعه اعمال کند.
برای ایجاد این فایل در سیستم عامل لینوکس لازم است یک فایل را ایجاد کرده و سپس نام آن را به .htaccess تغییر دهیم. اما در ویندوز به دلیل آنکه این سیستم عامل از فرمت "پسوند.نام فایل" پشتیبانی می کند و هر حرفی بعد از "." را پسوند فایل می داند و طبیعتا نام فایل نمی تواند خالی باشد از فرمت .htaccess پشتیبانی نمی کند. برای حل این مشکل می بایست از یک ویرایشگر متن استفاده کرد و در مرحله ذخیره نام آن را به .htaccess تغییر نام دهیم.

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

کنترل دسترسی افراد به بخش های خاصی از سایت :
امنت یکی از اصول مهم وب سایت های اینترنتی است. هرچه امنیت سایت بالاتر باشد امنیت خاطر کاربران و همچنین مدیر سایت بیشتر خواهد شد. در این بین لازم است تا ناحیه هایی از سایت را با اعمال یک پروسه امنیتی محدود کنیم. این ناحیه می تواند کنترل پنل و یا حتی عکس و... باشد. با استفاده از فایل htaccess می توان این کار را به بهترین نحو انجام داد. برای اعمال این کنترل لازم است تا مواردی را انجام دهیم. پس ماژول ها و دستورات خاصی لازم است که در ادامه شرح داده خواهد شد.
حداقل یکی از انواع ماژول های زیر احتیاج داریم:
1- ماژول های مربوط به نوع تصدیق هویت, که شامل mod_auth_basic و mod_auth_digest است. و توسط دستور AuthType مشخص می شوند.
2- ماژول هایی که وظیفه ارائه تصدیق هویت را بر عهده دارند و شامل ماژول هایmod_authn_alias, mod_authn_anon, mod_authn_dbd, mod_authn_dbm, mod_auth_default, mod_authn_file, mod_authnz_ldap می شوند.
3- ماژول هایی که اختیارات لازم را به گروه ها و اشخاص مختلف می دهند و عبارتند از mod_authnz_ldap, mod_authz_dbm, mod_authz_default, mod_authz_groupfile, mod_authz_owner, mod_authz_user. این ماژول ها توسط دستور Require به کار برده می شوند.
اما روش کار به این صورت است که اول بایستی یک فایل که حاوی نام کاربری و رمز عبور برای ورود به این ناحیه لازم است را ایجاد کنیم. به منظور امنیت بیشتر این فایل باید دور از دسترس باشد و در جایی خارج از مسیردهی مرورگر واقع شود. مانند: /home/usr/pass. پس از ایجاد فایل مربوط به رمز عبور و نام کاربری، این فایل را باز کرده و نام کاربر و رمز عبور را در یک خط درج می کنیم به طوری که نام کاربر و رمز عبور با ":" از هم جدا شده باشند.
توجه: دقت کنید که رمز عبور شما باید با تکنولوژی md5 رمزگذاری شده باشد!
پس از انجام مراحل بالا فایل .htaccess را در مسیری که به امنیت احتیاج دارد ایجا می کنیم و دستورات زیر در آن نگارش می شوند:




AuthName "Member's Area Name"
AuthUserFile /path/to/password/file/.htpasswd
AuthType Basic
require valid-user
در این مثال دستوراتی دیده می شود.
Authname: نام ناحیه محافظت شده است که به کاربر نشون داده می شود.
Authuserfile: مسیر مربوط به فایلی است که رمز و نام کاربری در آن قرار دارد.
Authtype: نوع شناسایی هویت را مشخص می کند که در این مثال از basic یکی از پرکاربردترین روش برای محافظت استفاده شده است.
Require: اسم یوزری که حق وارد شدن به ناحیه محافظت شده را دارد مانند: vahid


ادامه دارد ...

رضا قربانی
سه شنبه 07 تیر 1390, 19:17 عصر
تغییر مسیر یا Redirect به وسیله htaccess.
هنگامی که قابلیت تغییر مسیر در httpd.conf سرور فعال باشد مدیر سایت به راحتی می تواند بازدیدکنندگان خود را به صفحات دلخواه هدایت کند و این می تواند بسیار مفید باشد مثلا وقتی که محتوای سایت منتقل شده به راحتی می توان افراد را به محل جدید هدایت کرد.
برای این کار باید از کد زیر استفاده کنید:



Redirect /old_dir/ http://www.yourdomain.com/new_dir/index.html
این دستور مایانگر این است که اگر کسی به مسیر /old_dir/ رفت بطور اتوماتیک به /new_dir/ منتقل شود و محتوای مسیر جدید نمایش داده شود.
در این مثال هر دو مسیر در یک سایت وجود دارد.

بلوکه کردن درخواست ها از یک ip خاص
به دلیل برخی مشکلات امنیتی لازم است که از ورود برخی افراد جلوگیری شود که یکی از این راه ها بلوکه کردن ip این افراد است. ویا حتی مایلید که هیچ کس به غیر از مدیر سایت قادر نباشد به بخش مدیریتی برود. این دستور کمک بسیاری به کسانی که این هدف را دارند می کند.
برای این منظور متن زیر رو در فایل .htaccess قرار دهید:



order allow,deny
deny from 255.0.0.0
deny from 123.45.6.
allow from all
این خطوط ip 255.0.0.0 و ip های بین 123.45.6.0 و 123.45.6.255 را بلوکه می کند.
توضیح: 255.0.0.0 یک آی پی default و بجای آن می توان هر آی پی را وارد کرد.
اما وقتی که بخواهیم همه ip ها به جز یک آی پی خاص را بلوکه کنیم از خط زیر استفاده می شود:



Order allow,deny
Allow from 255.0.0.0
Denny from all
این خط نیز می گه که فقط ip 255.0.0.0 اجازه عبور داره و بقیه بلوک هستند.
توضیح: 255.0.0.0 یک آی پی default و بجای آن می توان هر آی پی را وارد کرد.


بلوکه کردن درخواست ها از یک آدرس url خاص (تکنیک referrers)
این عمل نیز مانند بالا عمل بلوکه کردن را انجام می دهد. اما با این تفاوت که به جای آی پی از آدرس url استفاده می کند.
نکته: برای اجرای این درخواست به ماژول 'mod_rewrite' احتیاج داریم. لذا باید این ماژول را فعال کرد.
پس ابتدا از کد زیر استفاده می کنیم:



RewriteEngine on
سپس:



# Options +FollowSymlinks
RewriteCond %{HTTP_REFERER} otherdomain\.com [NC]
RewriteRule .* - [F]
این دستور ترافیک درخواستی از آدرس: otherdomain.com را بلوکه می کند. nc آخر نیز مخفف کلمه it as not case-sensitive به معنی اینکه آدرس دارای حساسیت نیست. و به طور دقیق تر اینکه به هر طریقی که آدرس درخواست کننده تغییر داده شود بلوکه می شودمانند:



OtherDomain.com , oTherdOmain.com , OTHERDOMAIN.COM
و اما / قبل از نقطه این دقت را به وجود می آورد که بطور اشتباه آدرس domain.com را هم بلوک نکند. و این بخاطر استفاده از nc است که در مورد آدرس ها سخت گیری بعمل می آورد.
اگه symlink در فایل httpd.conf غیر فعال و بسته باشد به خاطر وجود Options +FollowSymlinks ارور 500 internal server error برگشت داده می شود. که در این صورت باید با مدیر سرور تماس گرفت و درخواست فعال سازی symlink را خواستار شد.
نسخه کامل:



RewriteEngine on
# Options +FollowSymlinks
RewriteCond %{HTTP_REFERER} otherdomain\.com [NC,OR]
RewriteCond %{HTTP_REFERER} anotherdomain\.com
RewriteRule .* - [F]
در این مثال ما از یک آدرس دیگر هم استفاده کردیم و درواقع 2 آدرس را بلوکه کردیم، که به این کار اصطلاحا multiple referrers گفته می شود.


عدم نمایش فایل های خاصی از سایت به url (ها)
آیا شما یک رقیب دارید که مایل نیستید که از فایلهاتون استفاده کند؟ آیا شما ساعت ها برای طراحی یک CSS زحمت کشیدید و مایل نیستید که فلان آدرس بیاد و از زحماتتون استفاده کنه به اسم خودش؟!
پس با دقت این بخش را مطالعه نمائید.
نکته: برای اجرا شدن این درخواست به ماژول 'mod_rewrite' احتیاج می باشد. لذا باید این ماژول را فعال کنیم.
مثلا می خواهیم کسی نتواند در یکی از پوشه های سایت، فایل های با پسوند:.jpg,.gif,.css را ببیند و همچنین در سایت خود قرار دهد و در واقع از قالبی که ما ساخته ایم استفاده کند.
دستورات زیر را در فایل .htacces قرار دهید:



RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?yourdomain.com/.*$ [NC]
RewriteRule \.(gif|jpg|css)$ - [F]
این دستور تمام درخواست های استفاده و یا مشاهده فایل با پسوند jpg,gif,css را که از سایت yourdomain.com نیستند را بلوکه می کند.


ادامه دارد ...

رضا قربانی
جمعه 10 تیر 1390, 03:04 صبح
مشخص کردن صفحه پیش فرض برای نمایش

شما می توانید فایل هایی را به طور پیش فرض برای نمایش به بازدیدکنندگان مشخص نمایید. مثلا هنگامی که بازدید کننده به سایتی مراجعه می کند(yoursite.com) به جای لیست دایرکتوری و نمایش فایل های موجود در دایرکتوری یک فایل با پسوند خاص را نمایش دهد. این فایل قابل تغییر است و می توان به طور دلخواه آن را مشخص کرد. به طور پیش فرض در سرور ها به این صورت می باشد:



DirectoryIndex index.html
که شما می توانید به صورت زیر تغییر دهید:



DirectoryIndex index.html index.php index.cgi
وقتی بازدید کننده آدرس سایت را وارد می نماید آپاچی جستجو می کند که چه فایل هایی در htacces به طور پیش فرض مشخص شده اند و با توجه به اولویت داده شده آنها را نمایش می دهد. برای مثال در مثال بالا ابتدا فایل index.html و در صورت نبود فایل index.html ، فایل index.php را نمایش می دهد و در پایان اگر هیچکدام از این دو فایل موجود نباشد، فایل index.cgi به نمایش کشیده می شود.

ایجاد پسوند برای فایل یا MIME
دوستان در برخی موارد ما نیاز داریم تا پسوند خاصی را برای یک فایل مشخص ایجاد کنیم یا یک پیوند خاص برای یک فایل مثلا html را به وب سرور آپاچی معرفی کنیم. برای اینکار یک فایل htaccess در پوشه مربوطه ایجاد کرده و کد زیر را درآن وارد می کنیم:



AddType text/html html0
در بخش نخست دستور اعلام می کند که یک پسوند اضافه می شود. و در بخش دوم نوع فایلی که بایست پسوند جدید ست شود را مشخص می کنیم و در بخش آخر پسوند جدید را می نویسیم. این کد فایل با پسوند html0 را به عنوان یک فایل html می شناسد و آنرا به صورت یک سند وب اجرا می کند.
در مواردی لازم است که شما فایل های مشخص شده ای را برای دانلود در سایت خود قرار دهید که در این بین ممکن است با عدم دانلود این فایل ها مواجه شوید. برای جلوگیری از این مشکل از دستور زیر استفاده می کنیم:



AddType application/octet-stream .bin
در این صورت هنگامی که فایلی با پسوند bin فراخوانی شود. مرورگر شروع به دانلود این فایل می کند!
در زیر لیستی از مهمترین پسوند ها را مشاهده می کنید:



AddType text/html .html .htm
AddType text/plain .txt
AddType text/richtext .rtx
AddType text/x-server-parsed-html .shtml .sht
AddType application/octet-stream .bin .exe
AddType application/pdf .pdf
AddType application/postscript .ai .eps .ps
AddType application/rtf .rtf
AddType application/zip .zip
AddType application/x-sh .sh
AddType application/x-gtar .gtar
AddType application/x-tar .tar
AddType application/x-httpd-cgi .cgi
AddType image/gif .gif .GIF
AddType image/jpeg .jpeg .jpg .jpe .JPG
AddType image/tiff .tiff .tif
AddType video/mpeg .mpeg .mpg .mpe
AddType video/quicktime .qt .mov
AddType video/x-msvideo .avi
AddType video/x-sgi-movie .movie






فعال کردن SSI بوسیله htaccess

SSI مخفف عبارت server side includes می باشد و این بدان معناست که بوسیله این روش می توانید سندهای html و یا cgi دیگری را به وب سایت خودتون بوسیله تگ مخصوص آن بچسبانید. این متد بسیار مفید است چراکه به فرض شما می توانید یک منو یا هدر و... را به صفحات سایت خودتون اضافه کنید و دیگر نیاز نیست برای هر صفحه کد بنویسید. فقط کافی است از این متد استفاده کنید.
تگ زیر فراخوانی یک سند SSI را به شما نمایش می دهد. این کد باید در بین صفحات وب قرار گیرند. این کد باعث می شود که اسکریپت CGI واقع در مسیر مربوطه فراخوانی و اجرا شود.




<!--#exec cgi="/cgi-bin/script.cgi"-->
در کد زیر نیز یک سند html معمولی فراخوانی می شود.
<!--#include virtual="/files/document.html"-->
اما این متد نیاز به فعال شدن دارد و برای فعال کردن آن باید از فایل htaccess کمک گرفت. برای این منظور فایل htaccess را در مسیر مربوطه ایجاد کنید و کد زیر را در آن وارد نمایید:




AddHandler server-parsed .html
این کد آپاچی را به گونه ای پیکر بندی می کند که اجازه داشته باشد متد SSI را در خصوص فایل html اعمال کند. وبرای اجرای این متد برروی چندین فایل باید کد زیر را وارد نمایید:




AddHandler server-parsed .html
AddHandler server-parsed .shtml
AddHandler server-parsed .htm
اجرای اسکریپت CGI در خارج از مسیر مربوطه( /cgi-bin/)

اگر سرور شما اجازه استفاده از فایل های cgi خارج از پوشه /cgi-bin/ را نمی دهد، براحتی می توانید این متد را فعال نمایید. به شرطی که ادمین سرور اجازه این کار را به شما داده باشد.
برای فعال سازی این متد، ابتدا فایل htaccess را ایجاد نموده و کدهای زیر را در آن وارد نمایید:



AddHandler cgi-script .cgi
Options +ExecCGI
خط اول فایل های .cgi را به عنوان اسکریپت cgi معرفی می کند و در خط دوم اجزاه اجرای این فایل را در مسیر مربوطه می دهد.


ادامه دارد ...
موفق باشید

رضا قربانی
دوشنبه 13 تیر 1390, 02:28 صبح
غیر فعال کردن نمایش دایرکتوری

ممانعت از لیست شدن دایرکتوری می تواند بسیار مفید باشد. برای مثال وقتی که شما یک دایرکتوری حاوی فایل های مهم دارید و نمی خواهید این فایل ها در معرض نمایش قرار گیرند. و یا حتی برعکس می خواهید برخی فایل ها را به نمایش بگذارید.

برای جلوگیری از نمایش دایرکتوری ابتدا یک فایل htaccess ایجاد کرده و کد زیر را در آن وارد نمایید:



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



IndexIgnore *.zip
دقت نمایید که در مثال قبل فقط یک ستاره بکار برده شده بود اما در این مثال پسوند نیز بکار برده شده و این به این معنی است که همه فایل ها به جز zip قابل نمایش هستند.
همچنین شما می توانید چندین فایل را بکار برید:



IndexIgnore *.zip *.jpg *.gif
یک پیشنهاد: گاهی اوقات سرور اجازه فعال کردن indexignore را نمی دهد. شما می توانید خود این متد را فعال نمایید:




Options +Indexes
برای غیر فعال سازی متد نیز بجای کارکتر"+" از کاراکتر "-" استفاده نمایید.

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



SetEnv TZ America/Indianpolis
SetEnv TZ America/Los_angeles
تغییر امضای سرور
برای تغییر امضای سرور که هنگام بروز مشکل به کاربر نمایش داده می شود در قالب خطاهای رایج آپاچی از کد زیر استفاده نمایید:



ServerSignature EMail
SetEnv SERVER_ADMIN nospace@pleasenospace.com
برای غیر فعال سازی این متد نیز از کد زیر استفاده نمایید:




ServerSignature Off
ممانعت از دسترسی به فایل های php includes

اگر شما پوشه حاوی فایل های inclue دارید بهتر است برای امنیت بیشتر از دسترسی افراد به این فایل ها جلوگیری کنید. اکنون راهی که از ماژول mod_Rewrite استفاده می کند را به شما آموزش می دهم.




## Enable Mod Rewrite, this is only required once in each .htaccess file
RewriteEngine On
RewriteBase /
## Test for access to includes directory
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /includes/ .*$ [NC]
## Test that file requested has php extension
RewriteCond %{REQUEST_FILENAME} ^.+\.php$
## Forbid Access
RewriteRule .* - [F,NS,L]

رضا قربانی
سه شنبه 14 تیر 1390, 15:23 عصر
ممانعت از دسترسی به فایل php.ini

اگر شما ترس از این دارید که افرادی به فایل های پیکربندی php دسترسی پیدا کنند می توانید این دسترسی را بوسیله فایل htaccesss محدود نمایید.
برای فعال سازی این متد فایل های زیر را در htaccess قرار دهید:



<FilesMatch "^php5?\.(ini|cgi)$">
Order Deny,Allow
Deny from All
Allow from env=REDIRECT_STATUS
</FilesMatch>
نمایش سورس فایل های اجرایی تحت وب
اگر نیاز دارید تا سورس کد اسکریپت های خود را به نمایش بگذارید کافی است پسوند این فایل ها را از حالت اجرایی خارج و آنها را به حالت نمایش به صورت متنی درآورید.




RemoveHandler cgi-script .pl .cgi .php .py
AddType text/plain .pl .cgi .php .py
دانلود فایل های مدیا به جای اجرای آن
فایل های mp3 و دیگر فایل های مدیا طبق شرایطی ممکن است به جای دانلود شدن به اجرا در آیند. برای ممانعت از چنین کاری از کدهای زیر استفاده کنید:




AddType application/octet-stream .zip .mp3 .mp4
که این کد سرور آپاچی را به گونه پیکر بندی می کند که این فایل ها را دانلود شدنی بداند.

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



RewriteEngine On
RewriteBase /
RewriteCond %{THE_REQUEST} !^[A-Z]{3,9}\ [a-zA-Z0-9\.\+_/\-\?\=\&]+\ HTTP/ [NC]
RewriteRule .* - [F,NS,L]
موفق باشید دوستان

ghiravani
شنبه 19 شهریور 1390, 16:43 عصر
كاربرد دوم- نمایش پسوند دلخواه صفحات (add mime type)

يك راه امنيتي كه من واقعا پيشنهاد ميكنم واسه حفاظت از اسكريپت هاي php شما اينه كه اونا php نباشن !! بله يعني مثلا asp يا jsp باشن اينطوري یه مقدار مطلب پیچیده میشه برای تشخیص

کد:
1
AddType application/x-httpd-php .asp .jsp
Addtype ميگه كه ما ميخوايم يه فرمت جديد بشناسونيم بعد نوع اون فايلهاي خاص با فرمت دلخواه رو ميگيم مثلا image/png يا text/css بعد ميگيم كه چه فرمتي رو از اين به بعد به عنوان نوعي كه گفتيم بشناس

من از کدی که گفتید در یه فایل با نام "htaccess" در کنار فایل PHP قرار دادم.


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


اما من هر کاری کردم جواب نداد!!!
چکار کنم؟؟

ابتدا یه فایل PHP ساختم با نام one.php بعد یک فایل "htaccess" ساختم با مشخصات بالا.اما وقتی آدرس صفحه رو با one.asp و one.jsp و... تست کردم ارور 404 میداد.روی هاست تست کردم.روی لوکال هم جواب نداد.
لطفا راهنماییم کنید.ممنون

mamali-mohammad
شنبه 19 شهریور 1390, 19:31 عصر
من این دستور رو نوشتم

IndexIgnore *
اما وقتی با اسکنر سایت رو اسکن می کنم ، بازم مسیر فایل ها و فولدرهارو نشون میده
چه کنم ؟

m.mahdim
یک شنبه 20 شهریور 1390, 03:51 صبح
یه سوال:
عوض کردن پسوند های php به aspx و سپس هم از این کد استفاده کردن فایده داره؟ :


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

یعنی تاثیرش چقدره؟ من باید توی کل سایتم تمام پسوند ها و لینک ها رو عوض کنم آخه! ارزشش رو داره؟
سپاس. :خجالت:

m.mahdim
یک شنبه 20 شهریور 1390, 04:11 صبح
من از کدی که گفتید در یه فایل با نام "htaccess" در کنار فایل PHP قرار دادم.


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


اما من هر کاری کردم جواب نداد!!!
چکار کنم؟؟

ابتدا یه فایل PHP ساختم با نام one.php بعد یک فایل "htaccess" ساختم با مشخصات بالا.اما وقتی آدرس صفحه رو با one.asp و one.jsp و... تست کردم ارور 404 میداد.روی هاست تست کردم.روی لوکال هم جواب نداد.
لطفا راهنماییم کنید.ممنون
aspx رو امتحان کنید.
یعنی:

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

رضا قربانی
دوشنبه 21 شهریور 1390, 12:00 عصر
من این دستور رو نوشتم
1
IndexIgnore *

اما وقتی با اسکنر سایت رو اسکن می کنم ، بازم مسیر فایل ها و فولدرهارو نشون میده
چه کنم ؟همین رو من برای صفحه ادمینم استفاده کردم و درست نمایش می ده ولی اگر نتونستید این روش رو پیاده سازی کنید یک روش دیگر هم هست که توسط تگ meta می تونید از نمایش فایل جلوگیری کنید برای مثال اولین فایلی که اجرا می شه و داخل یک فولدری قرار داد index.php می باشد که یک تگ متا داخل هد بنویس و robots رو مساوی از نوع NOINDEX,NOFOLLOW,NOARCHIVE بگذار . با این کار اگر اسکن کنی دیگه چیزی پیدا نمی شه .


عوض کردن پسوند های php به aspx و سپس هم از این کد استفاده کردن فایده داره؟عوض کردن آدرس های حقیقی به دروغین - خیلی توی امنیت تاثیر داره و هر کسی نمی تونه به همین راحتی بفهمه که به چه صورت آدرس کردید و حتی اگر با کراول ها هم اسکن کنه بازم آدرس حقیقی نشان داده نخواهد شد . و در کل می شه یه قسمت کوچیک از امنیت به حساب بیاد.

اگر به html تبدیل کنید که توی سئو تاثیر چشم گیری داره که خودتون متوجه میشید .

m.mahdim
دوشنبه 21 شهریور 1390, 15:13 عصر
منظورم این بود که ارزشش رو داره همه فایل ها رو رینیم کنم و بعد هم همه ی لینک ها رو عوض کنم؟؟

رضا قربانی
دوشنبه 21 شهریور 1390, 16:44 عصر
منظورم این بود که ارزشش رو داره همه فایل ها رو رینیم کنم و بعد هم همه ی لینک ها رو عوض کنم؟؟
بنده هم جواب شما رو در پست قبلی دادم .
بله ارزشش رو داره

موفق باشید

ghiravani
دوشنبه 21 شهریور 1390, 16:58 عصر
aspx رو امتحان کنید.
یعنی:

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

ممنون.اما این رو هم تست کردم ، سورس کد سایت رو مثل فایل txt باز کرد!!!!!!!!!!!!!!!!!!

این کارا رو کردم جواب نداد.اول کد زیر رو نوشتم

AddType application/x-httpd-php .aspx .jsp
بعد فایل مورد نظر رو که one.php بود ، بدون اینکه پسوندش رو عوض کنم ، با آدرس one.asp ، one.aspx و one.jsp تست کردم اما یا ارور 404 میداد یا کل سورس صفحه رو مثل یه فایل txt نمایش میداد!!!!
بعد پسوند همون فایل one.php رو به asp ، aspx و jsp تغییر دادم و تست کردم بازم جواب نداد!!!!

دوستان من یه فایل دارم با نام one.php ، میخوام کاری کنم که کاربر عادی نفهمه سایت با php هست.میخوام این فایل با همون فرمت one.php باشه اما اگر کاربر بجاش بزنه مثلا one.aaa هم همون صفحه باز بشه.باید چکار کنم؟؟؟؟؟؟


ممنون

m.mahdim
دوشنبه 21 شهریور 1390, 18:41 عصر
شاید Mod Rewrite شما خاموشه!

m.mahdim
دوشنبه 21 شهریور 1390, 18:43 عصر
برنامه ای هست که پسوند همه ی فایل ها رو به صورت یکجا عوض کنه؟

ghiravani
سه شنبه 22 شهریور 1390, 12:02 عصر
شاید Mod Rewrite شما خاموشه!

ممنون اما چجوری روشن میشه :-)
میشه راهنمایی کنید؟ممنون ;-)

mamali-mohammad
سه شنبه 22 شهریور 1390, 15:00 عصر
همین رو من برای صفحه ادمینم استفاده کردم و درست نمایش می ده ولی اگر نتونستید این روش رو پیاده سازی کنید یک روش دیگر هم هست که توسط تگ meta می تونید از نمایش فایل جلوگیری کنید برای مثال اولین فایلی که اجرا می شه و داخل یک فولدری قرار داد index.php می باشد که یک تگ متا داخل هد بنویس و robots رو مساوی از نوع NOINDEX,NOFOLLOW,NOARCHIVE بگذار . با این کار اگر اسکن کنی دیگه چیزی پیدا نمی شه .
ممنون
اما مشکل اینه که این فایل ها در جستجوی گوگل باید قرار بگیره
من فقط می خوام جلویگیری کنم از اسکن مسیر یه فولدر خاص یا فایل ها

m.mahdim
سه شنبه 22 شهریور 1390, 16:40 عصر
ممنون اما چجوری روشن میشه :-)
میشه راهنمایی کنید؟ممنون ;-)
خوب توی همین تاپیک هست دیگه! برگ اول رو خوب بخونید!

miladkamalabady
پنج شنبه 24 شهریور 1390, 01:57 صبح
من با تغییر در فایل http.conf و برداشتن # و تبدیل همه none ها به All فکر می کنم هنوز mod_rewrite غیر فعاله پیغامی که می ده اینه (البته از Easy PHP استفاده می کنم)
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator, admin@localhost and inform them of the time the error occurred, and anything you might have done that may have caused the error.

More information about this error may be available in the server error log.

رضا قربانی
پنج شنبه 24 شهریور 1390, 10:52 صبح
توی این آدرس C:\xampp\apache\conf
فایل httpd.conf

رو باز می کنیم و باید در داخلش یه تغییر کوچیک بدیم

بعد # کنار این خط رو بر می داریم :

LoadModule rewrite_module modules/mod_rewrite.so

در این حالت مد ریرایت فعال شده است



لطفا قبل سوال پست های قدیمی تر را مشاهده نمایید (پست شماره 2 )

موفق باشید

ghasemweb
پنج شنبه 24 شهریور 1390, 15:49 عصر
سلام
من لینکهام به این صورت هستش.


index.php?page=x&do=y&id=z

میخوام تو نوار آدرس به این صورت تغییر کنه. عبارت تبدیلش چی میشه؟


/page/x

رضا قربانی
جمعه 25 شهریور 1390, 00:31 صبح
این برای آدرس استاتیکی که شما می خواهید :


RewriteRule ^page/x index.php?page=x&do=y&id=z [QSA,NC,L]


جریان داینامیک بودنش فرق داره و یه سایتی هم هست که این آدرس دهی ها رو بهتون می ده اما الان فراموش کردم

idocsidocs
جمعه 25 شهریور 1390, 01:26 صبح
جریان داینامیک بودنش فرق داره و یه سایتی هم هست که این آدرس دهی ها رو بهتون می ده اما الان فراموش کردم
من الان همه آدرسهای سایتم کاربر پسند هستن (به شکل زیر).

/admin/paper/5

مشکلی که دارم اینه که اگه کاربر بیاد و آدرس لینکهای سنتی رو وارد کنه،

/admin.pgp?type=paper&id=5
بدون مشکل وارد صفحات سایت می شه. چطور باید این مشکل رو حل کرد؟ یعنی وقتی کاربر لینکهای سنتی رو وارد می کنه، کاربر رو به لینکهای سئو شده ریدایرکت کنم؟

m.mahdim
جمعه 25 شهریور 1390, 21:10 عصر
خوب بگید مثلا اگر آدرس صفحه یا همین
$_SERVER['PHP_SELF']
شامل admin.pgp?type=paper&id=5 بود، کاربر رو به صفحه ی ارور 404 ریدایرکت کنه.

idocsidocs
جمعه 25 شهریور 1390, 22:27 عصر
خوب بگید مثلا اگر آدرس صفحه یا همین
یعنی با htaccess نمی شه کاری کرد؟

سایر دوستان نظری ندارن؟

ghasemweb
شنبه 26 شهریور 1390, 00:08 صبح
میشه در مورد تبدیل لینک ها بیشتر توضیح بدید مثلا اینکه htaccess میاد مقدار href به نحوی که ما میخواییم تبیدیل میکنه و تو نوار آدرس نشون میده یا آدرسی که تو نوار آدرس تایپ میشه رو تبدیل میکنه و به سرور تحویل میده؟

لطفا در این موارد توضیح بدید ممنون میشم

miladkamalabady
یک شنبه 27 شهریور 1390, 22:59 عصر
من که گفتم از easy php استفاده می کنم و آدرس xampp ندارم ولی توی فایل conf تغییرات رو اعمال کردم. یعنی # رو برداشتم ولی هنوز کار نمی کنه

رضا قربانی
دوشنبه 28 شهریور 1390, 10:59 صبح
میشه در مورد تبدیل لینک ها بیشتر توضیح بدید مثلا اینکه htaccess میاد مقدار href به نحوی که ما میخواییم تبیدیل میکنه و تو نوار آدرس نشون میده یا آدرسی که تو نوار آدرس تایپ میشه رو تبدیل میکنه و به سرور تحویل میده؟

لطفا در این موارد توضیح بدید ممنون میشم
ببین دوست من از دستورات مد ریرایت می تونی آدرس های سایتت رو تغییر بدید . برای مثال شما اگر فایلی با نام news.php داشته باشید می تونید در url و نمایش لینک به هر صورتی که مایلید در بیارید . فارسی - انگلیسی - چینی و.... مثلا می تونید به این صورت آدرس دهی کنید

www.abc.com/news.php (http://www.abc.com/news.php) ====> www.abc.com/news/farsi/read (http://www.abc.com/news/farsi/read)

یا هر چیز دیگه


من که گفتم از easy php استفاده می کنم و آدرس xampp ندارم ولی توی فایل conf تغییرات رو اعمال کردم. یعنی # رو برداشتم ولی هنوز کار نمی کنه من چون از easy php استفاده نکردم تنظیماتش رو نمی دونم.
ولی یه چیز دیگه هم هست . فایل اچ تی اکسز رو باید در ریشه اصلی قرار بدید و برای فعال کردن مد ریرایت هم باید ابتدای صفحه اچ تی اکسز این کد رو وارد کنی که فکر کنم نکردید :


AddDefaultCharset utf-8
Options +SymLinksIfOwnerMatch
RewriteEngine On

مشکلت حل می شه

موفق باشید

idocsidocs
دوشنبه 28 شهریور 1390, 11:37 صبح
Options +SymLinksIfOwnerMatchمن از سرور برتینا استفاده می کنم، این سرور اعصابم رو ریخته به هم، همش ارور می ده و نمی شه تنظیمات دلخواه خودم رو توی فایل htaccess قرار بدم.

شما چه سروری پیشنهاد می دید؟

رضا قربانی
دوشنبه 28 شهریور 1390, 11:54 صبح
در جواب به دوستان قبلی
اگر در سرورهاشون Options +SymLinksIfOwnerMatch جواب نداد می تونن این کد رو جایگزین کنن :
Options +FollowSymlinks

miladkamalabady
دوشنبه 28 شهریور 1390, 21:21 عصر
آقا هر دو تاشون رو امتحان کردم ( Options +FollowSymlinks و قبلی) ولی باز همون پیغام رو می ده. شاید اگه سرورم رو عوض کنم جواب بده اگه لینکی از سرور دیگه ای سراغ دارین بگید (با اینکه من سر کلاس با همین easy php کار می کنم و اگه جواب نده و بچه ها سر کلاس بپرسند -احتمالش کمه- اونوقت کمی گیر می کنم)
منتظر جوابهای سبز شما هستم

jalaladdin
سه شنبه 29 شهریور 1390, 07:21 صبح
برای جلوگیری ازدسترسی به فایلهای محرمانه درپوشه private چگونه از کد htaccess استفاده کنم کنم؟
بعنوان مثال آدرس وب سایت این
http://www.majid1.net (http://www.majid1.net/) باشد تمامی فایلهای ویرایش و حذف و ارسال و.......در این پوشه private میباشد حالا اگر آدرس بدین صورت بنویسم http://www.majid1.net/private/delete.php صفحه حذف مطالب نشان داده میشود برای جلوگیری ازمشاهده این فایلها با دادن همچنین آدرسی چکار باید کرد؟

رضا قربانی
جمعه 23 دی 1390, 23:13 عصر
با سلام خدمت تمامی دوستان

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

د
وستان ببخشید اینو چند بار امتحان کردم جواب نگرفتم

اینو چطوری { http://localhost/article/index.php?page=2 }
ایجنوری کنم { http://localhost/article/News/2 }

خب اول باید با توابع مد ریرایت آشنایی داشته باشید که در اینجا من به فایل htaccess می گم آقا اگر index.php?page=2 (http://localhost/article/index.php?page=2) چنین آدرسی بود شما بیا و به این تبدیلش کن News/2 (http://localhost/article/News/2)
همیشه باید فایل htaccess در پوشه مورد نظر ایجاد بشه . مثلا در این مثال دوستمون ، فایل htaccess در پوشه article (http://localhost/article/News/2) ایجاد می شه و داخلش دستورات رو می نویسیم :


RewriteRule ^News/([^/]*)/([^/]*)/?$ index.php?page=$1 [QSA,NC,L]

حالا موقع لینک دادن در php دیگه نمی نویسیم : a href="index.php?page='.$row[id].' iiiiiiiiii (http://localhost/article/index.php?page=2)

باید ینویسید : http://localhost/article/News/.'$row["id}].' / '.record.' news (http://localhost/article/News/2)

* وقتی دارید از htaccess استفاده می کنید حتما باید کل لینک ها و آدرس دهی ها به صورت کامل باشه در غیر این صورت عمل نخواهد کرد
* اگر در لوکال هاست دارید تست می کنید باید توابع مد ریرایت رو فعال کنید . پست شماره دوم همین تاپیک
* فایل htaccess در پوشه مورد نظر فایل ها ذخیره شود
* حتی می تونید به صورت فارسی هم آدرس دهی کنید ولی نباید از کاراکتر خالی استفاده کنید یعنی Space (به کل خطا می گیره)

اینم کد کامل برای پاسخ به این دوست عزیزمون :


AddDefaultCharset utf-8
Options +FollowSymlinks
RewriteEngine On


RewriteRule ^News/([^/]*)/([^/]*)/?$ index.php?page=$1 [QSA,NC,L]



برای اینکه نام یک فایل هم تغییر بدید به این صورت می تونید عمل کنید :


RewriteRule ^Ali/علیرضا/Reza$ news.php [QSA,NC,L]

آدرس news.php می شه www.abc.com/Ali/علیرضا/Reza (http://www.abc.com/Ali/%D8%B9%D9%84%DB%8C%D8%B1%D8%B6%D8%A7/Reza)
این ادیتور نمیذاره واسه شما درست نمایش داده بشه . در کل علیرضا وسط قرار می گیره


امیدوارم بدردتون خورده باشه.
موفق باشید

yashar_0007
پنج شنبه 13 بهمن 1390, 21:18 عصر
اقا ممنون اینی که شما میگی رو انجام دادم شد اما یک سوال !!!؟؟؟
یه سایتی بخواد تایتل مطالبش اون بالا چاپ شه باید چی کار کنه !!! همورو دونه دونه باید اینجا بسازی این که نمیشه !!!
منظورم اینه نمی تونه هی بیاد تایتل اصلی شو اینجا تو .htaccses بهزنه که مثلا اگه روزی 10تا مطلب جدید بزاره چجوری باید اینارو درست کنه !!
manzoram ine ke age
page_download.php?id=122 in bashe va titelesh bashe
بازی اکشن
va page_download.php?id=123
فیلم خوب
va gheyre
in id ta 10000 yerozi shayad bere :D
نمیتونم که این و دستی آپدیت کنم آخه

yashar_0007
شنبه 15 بهمن 1390, 16:30 عصر
سلام، ممنون خودم پیدا کردم D:

رضا قربانی
سه شنبه 18 بهمن 1390, 19:54 عصر
در اینجا می خواهیم به این صورت عمل کنیم


http://www.abc.com/index.php?page=articles

تبدیل بشه به : (یعنی آدرسی که به صورت گت به صفحه مربوطه ارسال کردید رو حذف می کنه و فقط مقدارش رو نمایش میده) :



http://www.abc.com/articles/


باید داخل فایل اچ تی اکسس این کد رو قرار بدیم :

RewriteEngine On
RewriteRule ^([a-zA-Z0-9]+)/$ index.php?page=$1






Common variable sets



[A-Z] The variable can have uppercase letters
[a-z] The variable can have lowercase letters
[0-9] The variable can have numbers
([a-zA-Z0-9]+) The variable can have any of the above, and has no limit to the number of characters.


ترفند خوبیه
موفق باشید

mahmod2000
شنبه 22 بهمن 1390, 20:08 عصر
سلام

درخواست کمک داشتم

میخوام مثل این آدرس

http://alef.ir/vdciupazrt1a5z2.cbct.html?143102

به آدرس :
http://mydomiain.com/vdciupazrt1a5z2.cbct.html?143102

تبدیل بشه

تو htaccess چی باید بزنم؟

رضا قربانی
شنبه 22 بهمن 1390, 23:56 عصر
سلام

درخواست کمک داشتم

میخوام مثل این آدرس

http://alef.ir/vdciupazrt1a5z2.cbct.html?143102

به آدرس :
http://mydomiain.com/vdciupazrt1a5z2.cbct.html?143102

تبدیل بشه

تو htaccess چی باید بزنم؟

باید اینو بزنی و ادامش رو با پی اچ پی بهش اضافه کنی . حالا با توابع هم می شه که توی پست بعدی بهتون یاد می دم

Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^alef\.ir
RewriteRule ^(.*)$ http://www.mydomain.com/$1 [R=permanent,L]

یا اگر بالایی جواب نداد این :


RewriteEngine on
RewriteCond %{HTTP_HOST} ^alef.ir [NC]
RewriteRule ^(.*)$ http://www.mydomain.com/$1 [L,R=301]


این روش برای اضافه کردن www. در مبحث سئو هم ارزش خواص خودش رو داره

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


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

موفق باشید

رضا قربانی
یک شنبه 23 بهمن 1390, 01:42 صبح
دیدم این تاپیک خوابیده گفتم یک آموزش کلی و کد در اختیار برنامه نویسان عزیز بذارم . خیلی کم دیده می شن که از اچ تی اکسس استفاده می کنن که در اشتباه هستند و منم تلاش می کنم تا بلکه چند نفری بهبود پیدا کنند .

خب بریم روی آموزش :


چنین آدرس هایی داریم که می خواییم نام دامنشون رو عوض کنیم

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]




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

موفق باشید
شادزی

mahmod2000
یک شنبه 23 بهمن 1390, 09:38 صبح
ببخشید که یه سوال مبتدی میکنم

htaccess
روی لوکال کار نمیکنه؟
باید حتما روی هاست آپلود بشه ؟

modwrite
هم فعال کردم

yones_safari
یک شنبه 23 بهمن 1390, 10:55 صبح
ببخشید که یه سوال مبتدی میکنم

htaccess
روی لوکال کار نمیکنه؟
باید حتما روی هاست آپلود بشه ؟

modwrite
هم فعال کردم
نه کار میکنه.با xampp تست کن.Easy PHP جواب نمیده.

mahmod2000
یک شنبه 23 بهمن 1390, 11:07 صبح
با xampp هستم عزیز

ولی انگار هیچیش عمل نمیکنه

فایل htaccess رو گذاشتم کنار فایل php

درسته دیگه؟

yones_safari
یک شنبه 23 بهمن 1390, 11:13 صبح
دادا نام فایل باید htaccess. باشه.شاید نقطه یادت رفته؟؟؟؟؟

mahmod2000
یک شنبه 23 بهمن 1390, 11:57 صبح
بله عزیز درسته

الان این ارور رو میده :
Server error!

The server encountered an internal error and was unable to complete your request. Either the server is overloaded or there was an error in a CGI script.
If you think this is a server error, please contact the webmaster (postmaster@localhost).
Error 500

localhost (http://localhost/)
2/12/2012 12:14:06 PM
Apache/2.2.17 (Win32) mod_ssl/2.2.17 OpenSSL/0.9.8o PHP/5.3.4 mod_perl/2.0.4 Perl/v5.10.1


این فایل htaccess را ضمیمه کردم

رضا قربانی
یک شنبه 23 بهمن 1390, 19:34 عصر
خب عزیز من شما در لوکال هاست هستید و آدرس پیشفرض رو دادید www.domain.ir خب معلومه که ارور می گیره.

شما اول روی هاست تست بگیر چون مربوط به دامنه می شه اگر جواب گرفتید بیایید توی لوکال و از آدرس لوکال http://localhost/ یا آدرس آی پی لوکال http://127.0.0.1/ استفاده کنید . چون خودم روی لوکال هاست تست نگرفتم.

بعد به این مسیر هم برو باید همش ACTIVATED سبز رنگ باشه . در این صورت شما با لوکال هاست مشکل ندارید : http://localhost/xampp/ منوی سمت چپ گزینه Status (http://localhost/xampp/status.php)

من اینا همه رو توضیح دادم فقط باید کمی دقت کنید و از پست دادن پرهیز کنید.
بعد کد نویسی شما هم اشتباهه . به این صورت باید بنویسید : توی پست شماره 60 همین تاپیک توضیح دادم



AddDefaultCharset utf-8
Options +FollowSymlinks
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.default\.ir [NC]
RewriteRule ^(.*)$ http://www.mydomain.com/$1 [L,R=301]

موفق باشید

mahmod2000
یک شنبه 23 بهمن 1390, 20:00 عصر
دوست عزیز الان درست کار کرد

ولی این کد مگه واسه جایگزینی اسمه دامین فقط نیست؟

این ردایرکت میکنه به آدرس mydomain

من منظورم اینه که فقط اسمه لینکایی که میاد رو عوض کنه نه اینکه ردایرکت کنه

رضا قربانی
دوشنبه 24 بهمن 1390, 01:11 صبح
من الان روی هاست تست کردم جواب داده . ولی روی لوکال هاست نشد روی لوکال ریدایرکت شده . باید دید مشکل از کجاست

maysam3
دوشنبه 01 اسفند 1390, 07:56 صبح
ببخشید حل شد

colors
یک شنبه 07 خرداد 1391, 10:53 صبح
درود

دوستان من یه پوشه دارم که چندتای فایل توشه که در فواصل زمانی نامشخص در طول روز توسط cron jabs اجرا میشن و یه سری کارارو انجام میدن.

الان میخواستم بدونم چطوری با htaccess دسترسی اون پوشه رو محدود کنم که اگه آدرس اون فایلها رو زدن اجرا نشن و یا خطای چیزی بده؟ ( توجه کنید که باید توسط cron jabs اجرا بشن )

رضا قربانی
یک شنبه 07 خرداد 1391, 18:37 عصر
در این کد دسترسی پوشه ها رو از کاربر می گیریم :


Options +FollowSymlinks
RewriteEngine on
RewriteRule ^(.*)$ deny.php [nc]






تو قسمت بالا اگه کاربر بخواد به هر نحوی وارد یه پوشه بشه ریدایرکت میشه به deny.php

در مثال بعدی کاری کنیم که فقط به فایل های خاصی دسترسی داشته باشه و بجز اون هر فایلی خواست باز کنه ارور بده :



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


تو دستور بالا ما گفتیم فقط به فایل هایCss Js و فایل file.php اجازه بده که توسط کاربر فراخوانی بشه در غیر اینصورت ریدایرکت کنش به پوشه /deny/ .

جدا از اینا پست شماره 61 ما که توی صفحه 7 ایجاد شده هم یه نگاه بنداز چون یک روش دیگه هم توضیح دادم.

موفق باشید

colors
یک شنبه 07 خرداد 1391, 19:37 عصر
مثل همیشه عالی بود - ممنون

این مثال دوم نمیشه عکسش رو گذاشت؟

رضا قربانی
دوشنبه 08 خرداد 1391, 10:07 صبح
! علامت معکوسه . حذفش کنی میشه همین چیزی که شما می خواهید.

رضا قربانی
چهارشنبه 10 خرداد 1391, 10:14 صبح
درخواستی از دوستان :ی

با این کد می تونید مقدار حجم آپلود فایل و اطلاعات ارسالی در سایت که با php نوشته شده را به مقدار 25 مگابایت افزایش دهید و یا بیشتر :
(کد روزه : برای php5 به بالا)



<Directory />
Options +FollowSymLinks
AllowOverride All
</Directory>


<IfModule mod_php5.c>
php_value max_execution_time "60"
php_value max_input_time "60"
php_value upload_max_filesize "25M"
php_value post_max_size "25M"
</IfModule>


البته روش های زیادی برای این کار وجود داره که این به روش اچ تی اکسسه.

این کد ها هم هر کدوم یک کاری انجام میده(مثلا در ارتباط با استفاده سیشن و کوکی و ...) :
php_value post_max_size 200M
php_value upload_max_filesize 200M
php_value memory_limit 300M
php_value output_buffering on
php_value max_execution_time 259200
php_value max_input_time 259200
php_value session.cookie_lifetime 0
php_value session.gc_maxlifetime 259200
php_value default_socket_timeout 259200

و و و ...

موفق باشید

nader3
چهارشنبه 10 خرداد 1391, 11:58 صبح
سلام دوستان یکی میتونه به من کمک کنه؟ من از سرور ویندوز استفاده می کنم به زور تونستم htaccess رو به web.config تبدیل کنم ، اما الان وقتی ؟ رو به / تبدیل می کنم فایل های جاوا اسکریپت و سی اس اس رو نمی خونه

colors
چهارشنبه 10 خرداد 1391, 12:05 عصر
درود

باید آدرس دهی فایلهای رو از حالت نسبی به مطلق تبدیل کنید.

یعنی به جای اینکه اینطور آدرس بدید

<link rel="stylesheet" type="text/css" href="css/style.css"/>
باید اینجوری آدرس بدید

<link rel="stylesheet" type="text/css" href="http://www.mysite.com/css/page/site.css"/>

البته میتونید از تگ base در بخش head استفاده کنید و آدرس دهی هارو تغییر ندید. فقط کافیه آدرس وب سایت خود رو به تگ base بدید.

مثل این

<base href="http://www.mysite.com/"/>

mrm109
یک شنبه 21 خرداد 1391, 02:20 صبح
آقا این کد من کار نمیکنه مشکلش چیه؟

RewriteEngine on
RewriteRule ^profile/userid/([0-9]+) www.tehranartgallery.com/profile.php?userid=$1 [NC]

mrm109
یک شنبه 21 خرداد 1391, 10:37 صبح
سلام فکرکنم یک علامت دلار نذاشتی
فکرکنم این طوری باید باشه :

RewriteRule ^profile/userid/([0-9]+)$ http://www.tehranartgallery.com/profile.php?userid=$1 [NC]

آقا متاسفانه بازم کار نمیکنه لطفا راهنمایی کنید

رضا قربانی
یک شنبه 21 خرداد 1391, 13:01 عصر
باید به این صورت بنویسید :


اگر محتویات گت شما String بود :


RewriteRule ^profile/userid/([^/]*)$ profile.php?userid=$1 [L]

آدرس دهی شما می شه : www.abc.com/profile/userid/Reza/
اگر محتویات گت شما int یا یعنی فقط عدد بود :


RewriteRule ^profile/userid/([^/]*)/([^/]*)/?$ profile.php?userid=$1 [QSA,NC,L]

آدرس دهی شما می شه : www.abc.com/profile/userid/1/

موفق باشید

mrm109
یک شنبه 21 خرداد 1391, 13:32 عصر
باید به این صورت بنویسید :


اگر محتویات گت شما String بود :


RewriteRule ^profile/userid/([^/]*)$ profile.php?userid=$1 [L]

آدرس دهی شما می شه : www.abc.com/profile/userid/Reza/
اگر محتویات گت شما int یا یعنی فقط عدد بود :


RewriteRule ^profile/userid/([^/]*)/([^/]*)/?$ profile.php?userid=$1 [QSA,NC,L]

آدرس دهی شما می شه : www.abc.com/profile/userid/1/

موفق باشید

ممنون از راهنماییتون ولی خودتون این لینکو چک کنید ببینید باز جواب نمیده

http://www.tehranartgallery.com/profile.php?userid=80

http://www.tehranartgallery.com/profile/userid/80/

رضا قربانی
یک شنبه 21 خرداد 1391, 13:39 عصر
دوست عزیز شما به چه صورتی لینک میدید ؟

باید به این شکل لینک بدید
چون عددیه باید از این کد ریرایت استفاده کنیم :

RewriteRule ^profile/userid/([^/]*)/([^/]*)/?$ profile.php?userid=$1 [QSA,NC,L]
و این آدرس دهی :

href="www.abc.com/profile/userid/'.$row["id"].'/

یادتون باشه در انتها / بذارید.

من تست کردم مشکلی نداشت

mrm109
یک شنبه 21 خرداد 1391, 16:08 عصر
دوست عزیز شما به چه صورتی لینک میدید ؟

باید به این شکل لینک بدید
چون عددیه باید از این کد ریرایت استفاده کنیم :

RewriteRule ^profile/userid/([^/]*)/([^/]*)/?$ profile.php?userid=$1 [QSA,NC,L]
و این آدرس دهی :

href="www.abc.com/profile/userid/'.$row["id"].'/

یادتون باشه در انتها / بذارید.

من تست کردم مشکلی نداشت

بله منم همیک کد را استفاده کردم ولی تو 2 تا لینک بالا که نمونه گذاشتم دیدید که جواب نداد

mrm109
دوشنبه 22 خرداد 1391, 02:52 صبح
عزیز من می گم تست کردم مشکلی نداشته . سه تا پست ارسال کردید هنوز نحوه لینک دادن رو برامون نفرستادید تا ما ببینیم چی کار کردی و مشکلت چیه.

نحوه لینک دادن در php که از بانک می خونید و لینک داینامیک تولید می کنید رو اینجا برامون بذارید تا راهنماییتون کنیم . در غیر این صورت نمیشه کاری کرد

آقا لینک داینامیکو هنوز درست نکردم فعلا دارم تست میکنم که لینکو چه مدلی درست کنم.ضمن اینکه نیازی به اون نیست فعلا.الان اون 2 تا لینکی که بالا دادم شما میگی تست کردی مشکلی نداره واسه من کار نمیکنه.

رضا قربانی
دوشنبه 22 خرداد 1391, 09:40 صبح
عجب...

خب فایلتون رو که دارید تست می کنید ضمیمه کنید تا براتون درست کنیم

از پست های spam خودداری نمایید

باتشکر

mr.wolf
سه شنبه 23 خرداد 1391, 16:34 عصر
سلام دوستان
من توی سایتم کلی جاوا استفاده کردم.
بعضی هاش رو توی فایل های js ذخیره کردم و توی صفحه فراخوانی میکنم
جدیدا متوجه شدم که بعضی سایت های همکار اومدن دقیقا همون کدهای js من رو از توی فایل ها کپی پیست کردن دارن استفاده می کنن.
آیا از طریق htaccess میشه دسترسی مستقیم به فایل های js رو محدود کرد به نحویکه سورس اون ها قابل نمایش نباشه ولی بتونه عملیات مربوطه رو در صفحه اجرا کنه ؟؟؟

MSN_Issue
سه شنبه 23 خرداد 1391, 18:00 عصر
سلام دوستان
من توی سایتم کلی جاوا استفاده کردم.
بعضی هاش رو توی فایل های js ذخیره کردم و توی صفحه فراخوانی میکنم
جدیدا متوجه شدم که بعضی سایت های همکار اومدن دقیقا همون کدهای js من رو از توی فایل ها کپی پیست کردن دارن استفاده می کنن.
آیا از طریق htaccess میشه دسترسی مستقیم به فایل های js رو محدود کرد به نحویکه سورس اون ها قابل نمایش نباشه ولی بتونه عملیات مربوطه رو در صفحه اجرا کنه ؟؟؟
خیر دوست عزیز
زبان های کلاینت ساید (مثل جاوا اسکریپت و سی اس اس) باید کاملا در مرورگر کلاینت لود بشند و برای همین نمیشه جلوی لود شدنشون رو گرفت.

mrm109
شنبه 03 تیر 1391, 02:04 صبح
دوستان کد زیر که نوشتم به لینکی که میخوام ریدایرکت میکنه ولی ریرایت نمیشه.مشکل چیه چجوری باید بنویسم

RewriteEngine on
RewriteRule ^tag/sec/(.*)$ ../../../tag.php?sec=$1 [R]

idocsidocs
جمعه 30 تیر 1391, 12:48 عصر
من می خوام هر درخواستی که با test شروع نمی شه به ریرایت مد برن ولی اینطور نمی شه. مشکل چسه؟


RewriteCond %{QUERY_STRING} !^test/

RewriteRule ^([^\/]+)/([^\/]+)$ index.php?c1=$1&c2=$2 [NC,L]

masato
چهارشنبه 04 مرداد 1391, 17:42 عصر
با سلام
من میخوام این آدرس رو http://localhost/mvc/index.php?rt=blog/view اینم لینکم هست

<a href="http://localhost/mvc/index.php?rt=blog/view">blog</a>
به این تغییر بدم
localhost/mvc/blog/view
همه تاپیک ها که به این موضوع مربوط میشود رو هم امتحان کردم اما نشد لامصب:متعجب:
مدریرایت هم فعال این فایل90225
با تشکر

masato
پنج شنبه 05 مرداد 1391, 09:47 صبح
سلام
آقا یکی یه نگاه بندازه:افسرده:
اینم خطایی که آپاچی میده
127.0.0.1 - - [26/Jul/2012:10:11:42 +0430] "GET /mvc/index.php?rt=blog/view HTTP/1.1" 200 67
تشکر

رضا قربانی
یک شنبه 12 شهریور 1391, 02:56 صبح
من می خوام هر درخواستی که با test شروع نمی شه به ریرایت مد برن ولی اینطور نمی شه. مشکل چسه؟

1
2
3
RewriteCond %{QUERY_STRING} !^test/

RewriteRule ^([^\/]+)/([^\/]+)$ index.php?c1=$1&c2=$2 [NC,L]

نحوه شرط گذاری شما اشتباهه . باید دقیق و کامل بنویسید . خشک و خالی با نوشتن test جواب نمیگیرید .



با سلام
من میخوام این آدرس رو http://localhost/mvc/index.php?rt=blog/view اینم لینکم هست
کد HTML:
<a href="http://localhost/mvc/index.php?rt=blog/view">blog</a>
به این تغییر بدم
localhost/mvc/blog/view
همه تاپیک ها که به این موضوع مربوط میشود رو هم امتحان کردم اما نشد لامصب:متعجب:
مدریرایت هم فعال این فایلhtaccess.zip (http://barnamenevis.org/attachment.php?attachmentid=90225&d=1343223652)
با تشکر فایل اچ تی اکسس باید داخل فولدر mvc ایجاد کنید و چنین کدی رو بنویسید :

RewriteRule ^([^/]*)$ index.php?rt=$1 [L]

یا


RewriteRule ^([^/]*)/([^/]*)/?$ index.php?rt=$1 [QSA,NC,L]


موقع فراخوانی هم میگید

echo'<a href="www.abc.com/mvc/'.$row["blog"].'/'.$row["view"].'"> abc </a>';

رضا قربانی
یک شنبه 12 شهریور 1391, 03:09 صبح
یک موقع هایی آدرس بعضی از صفحاتتون تغییر می کنه با این کد می تونید ریدایرکت کنید به آدرس جدید :


RewriteRule ^old_page.php$ http://new_domain.com/new_page.php [R=301,NC]

====================
چنین آدرسی داریم :
http://mydomain.com/blog.php?category=news&month=05&year=2008
که می خواهیم تبدیل بشه به :
http://mydomain.com/news/05/2008


RewriteRule ^blog/([^/]+)/([^/]+)$ blog.php?category=$1&article_id=$2 [NC]

================

یک آدرس گت داریم که نمی خواهیم نمایش داده بشه و بعد از تصحیح پسوند هم به html تبدیل کنیم چنین آدرسی داریم :
www.abc.com/reza.php?get=test (http://www.abc.com/reza.php?get=test)
که می خواهیم تبدیل بشه به :
www.abc.com/test.html (http://www.abc.com/test.html)


RewriteRule ^([^/]*)\.html$ reza.php?get=$1 [L]

در این سایت از اینگونه مد ریرایت ها استفاده شده که می تونید ببینید : http://www.amolboresh.com/%D8%AF%D9%88%D8%B1%DA%A9%D9%86.html
تا مطالب بعدی
موفق و پیروز باشید

رضا قربانی
یک شنبه 12 شهریور 1391, 14:28 عصر
سلام داش رضای گــل
آقا ممنون از آموزشای خوبت
یه سوال من میخوام فاصله ای که توی آدرس بعضی لینک ها هست (20%)رو به خط فاصله تبدیل کنم
میشه یه توضیح بدی
بازم ممنون


اگر دو تا آدرس گت داشتیRewriteRule ^([A-Za-z-\s]+)/([A-Za-z-\s]+)$ /index.php?lastname=$1&name=$2 [QSA,L]

اگر یکی آدرس گت داشتی
RewriteRule ^([A-Za-z-\s]+)$ /html/index.php?lastname=$1 [QSA,L]

ولی بهینه تر و رایج تر اینه که با php بگی هر جا کاراکتر خالی بود به جاش یک آندرلاین بذارید : (دش یا - در سئو منسوخ شده)


str_replace("_"," ",$row["test"])
شما باید با php این کار رو انجام بدید . چون با دستورات ریرایت یک آدرس جدید درست میشه یعنی شما با دو آدرس به صفحه خودتون لینک میشید .

mrm109
یک شنبه 19 شهریور 1391, 17:56 عصر
سلام
من ریرایت رو انجام دادم درست کار میکنه و صفحه ای که می خوام رو میاره
فقط مشکل اینجاست که css صفحه لود نمیشه و فقط متن اوون صفحه میاد.

راهنمایی کنید مشکل کجاست
ممنون

.fatemeh
دوشنبه 20 شهریور 1391, 09:40 صبح
جایی که css رو لینک کردین آدرس دهی کامل انجام بدین یا از تگ <base> استفاده کنید.

mrm109
دوشنبه 20 شهریور 1391, 13:52 عصر
جایی که css رو لینک کردین آدرس دهی کامل انجام بدین یا از تگ <base> استفاده کنید.

مرسی عزیزم از راهنماییت با یه تگ بیس ساده همه چی حل شد.فدااات

mypingle
پنج شنبه 16 آذر 1391, 00:45 صبح
درود
من مطالب رو خوندم ولی به سوالی که توی ذهنم بود جوابی داده نشد.

توی صفحه اول گوگل یک لوگویی هست که لینکش اینه :

https://www.google.com/images/srpr/logo3w.png

خوب حالا گوگل یه کاری کرده که شما فقط میتونی این لوگو رو ببینی یعنی دیگه نمیتونیم فایل ها و یا عکس هایی که توی این پوشه قرار داره رو ببینیم تا وقتی که آدرس دقیق اون عکس رو بدونیم . حال اگه به پوشه های دیگه برید میبینید که Error 404 میده یعنی شبیه این صفحه :

https://www.google.com/images/srpr

حال چطوری میشه همچین کاری رو روی سایت خودم انجام بدم
ممنون میشم

jionelmessi
شنبه 18 آذر 1391, 21:50 عصر
من اینارو هوندم میشه اینم توضیح بدین چیکا میکنه؟
RewriteBase /cloob/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?%{QUERY_STRING} [NE,L]


این !-d یا !-f و این
QUERY_STRING

چیکار میکنه تو اون دستور

mohammad-gh
جمعه 15 دی 1391, 20:29 عصر
سلام
متاسفانه نتونستم از مطالب ارزشمندتون در مورد زیر اسفاده کنم

اگر توجه کنید در وبلاگها میشه یک ادرس شخصی رو مثل www.test.com (http://www.test.com)
به وبلاگت وصل کنی مثل ادرس http://sana-net.ir/blogs.php?id=149 (http://sana-net.ir/viewnews.php?id=149)

به صورتی که با زدن آدرس شخصی به صفحه وبلاگت می روی و حتی آدرس وب لاگ هم نشون داده نمیشه

اگر ممکن است در مورد این کار کمی راهنمایی کنید و اینکه این کار فقط با httascc میشه انجام بشه و در طرف دامنه باید چه کارهایی انجام دهیم (تنظیم دی ان اس و ...)

Tarragon
شنبه 16 دی 1391, 15:34 عصر
سلام می شه یه کد برای استفاده از subdomain که همه جا( از جمله لوکال هاست) کار کنه بدید؟
مثلا test.example.com بشه example.com/?sub=test
تشکر.

prg_mail
دوشنبه 25 دی 1391, 18:48 عصر
نحوه تبدیل این لینک :

project.php?catid=1

به این لینک :
category/1/مدیریت/


توضیح بدین و بفرمایید اگر کاربر لینک دوم رو اجرا کنه از کجا تعیین کنیم کدوم فایل روی هاست اجرا بشه ؟
اولی که معلومه project.php اجرا میشه دومی چی ؟

morteza_carefree
چهارشنبه 04 بهمن 1391, 17:16 عصر
دوستان من به اين شکل کار کردم ولي جواب ندادالبته بگم که روي
easyphp 5.3.8.0
کار کردم آيا ميشه از اون باشه ؟

RewriteEngine on

RewriteRule ^(.+)/(.+)/?$ last2.php?id=$1&q=$2 [NC,L]

php_love
دوشنبه 16 بهمن 1391, 12:22 عصر
دسستون درد نکنه لذت بردم

prg_mail
چهارشنبه 09 اسفند 1391, 21:38 عصر
با اینکه کسی اینجا جواب ما رو نداد اما با سعی خودم سایت کلا لینکاش فارسی شد : :خجالت:
http://www.POROJE.Com

رضا قربانی
جمعه 16 فروردین 1392, 20:33 عصر
با اینکه کسی اینجا جواب ما رو نداد اما با سعی خودم سایت کلا لینکاش فارسی شد : :خجالت:
http://www.POROJE.Com

عجب :افسرده:
همه چی رو که آماده و منظم با توضیحات کافی و تست شب بیداری در اختیارتون گذاشتم .

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

تازه این پست شما جنبه تبلیغاتی داره
واقعا که

prg_mail
جمعه 16 فروردین 1392, 20:43 عصر
جناب رضا قربانی عزیز ضمن تشکر از زحمات جنابعالی لازم به ذکره که شما در این تاپیک خیلی زحمت کشیدین و کار خیلارو راه انداختین من از طرف اون ها هم از شما سپاسگزارم- اما بنده در تاریخ دوشنبه 25 دی 1391 19:18 عصر در پست شماره 102 سوالی پرسیدم که تا تاریخ چهارشنبه 09 اسفند 1391 22:08 عصر !!!!! کسی به اون جواب نداد باورتون میشه ؟! یعنی 45 روز ! و در این مدت خودم حلش کردم-از این بابت نوشتم کسی به ما کمک نکرد- البته 1 نکته دیگروهم در نظر داشته باشید : من گفتم کسی کمکم نکرد نه صرفا جناب قربانی کمکم نکرد - بازم از زحمات شما در آموزش با ما تازه کارا سپاسگزارم، قصد پست تبلیغاتی دادن ندارم اونو دادم به عنوان نمونه سایرین بررسی کنند.

با تشکر از شما

رضا قربانی
یک شنبه 22 اردیبهشت 1392, 13:52 عصر
یکی از سایت های مفید که می تونید ازش توی ساختن آدرس ها کمک بگیرید ، البته با کمی تغییرات بر روی کدهایی که بهتون میده :
http://www.generateit.net/mod-rewrite/
واسه تمرین عالی هست و خیلی کمکتون می کنه
موفق باشید

hanijafari
سه شنبه 31 اردیبهشت 1392, 04:18 صبح
کار این کد چی هست؟

<ifModule mod_expires.c>
ExpiresActive On
ExpiresDefault "access plus 300 days"
</ifModule>

Tarragon
سه شنبه 31 اردیبهشت 1392, 07:10 صبح
فکر کنم می گه صفحات تاریخ انقضا داشته باشند و مدتش هم بیشتر از 300 روز باشه.

hanijafari
سه شنبه 31 اردیبهشت 1392, 13:27 عصر
فکر کنم می گه صفحات تاریخ انقضا داشته باشند و مدتش هم بیشتر از 300 روز باشه.

یعنی سایت بعد از 300 روز دیگه بالا نیاد یا چیزه دیگه ای؟
چون توی تمام فولدرهای رو سایتم این تو فایل هیت اکسس هست!!!
اگر کلا هیت اکسس رو از رو هاست پاک کنم یا مقادیر همه رو خالی بزارم که مشکلی پیش نمیاد؟
با تشکر

Mohsen71
شنبه 04 خرداد 1392, 10:59 صبح
سلام دوستان
یه سوال فنی!

من با این دستورات توی htaccess کاری کردم که عکس های آپلود شده توی آپلودسنترم، فقط و فقط برای دامین خودم نمایش داده بشن!
حالا یه ضعف داره و یه کمبود!
ضعفش : وقتی کسی مستقیما میخواد یه عکسی رو ببینه، بازم پیغام خطا میده که عکس فقط توی فلان دامین نمایش داده میشه!
یعنی میخوام علاوه بر اینکه توی دامین مشخص شده نمایش داده بشه، هر کسی که لینک مستقیم رو داره و میخواد توی مرورگر مستقیما عکس رو ببینه هم بتونه باز کنه!
بر فرض لینک رو اینجوری توی مرورگر وارد کنه : http://Site.com/image.jpg

کمبود : کمبودش اینه که میخوام علاوه بر نشون دادن عکس دلخواهم که توش نوشته دسترسی به این عکس فقط از فلان سایت امکان پذیر هست، لینک هم بشه!
که کاربرا رو اون لینک کلیک کنن و بیان تو سایت.
کسی میتونه منو راهنمایی کنه؟

abbas-software
شنبه 04 خرداد 1392, 11:27 صبح
سلام دوستان
چجوری میتونم با ارسال اطلاعات از یک سایت دیگه(مثلا فرمی در صفحه وبلاگ)، به یک صفحه php در سایتم، اونو اجرا کنم و ورودی هاشو از وبلاگ بگیرم!!!!؟
البته در حالتی که کد

RewriteRule .*\.(.*)$ http://www.example.ir [R,NC]

رو بر میدارم درست کار میکنه و اجرا میشه!!! (این کد فکر کنم در واقع دسترسی مستقیم یا دسترسی از سایت های دیگر رو می بنده! درسته؟)
ولی من میخوام با وجود این کد هم بتونم اون کار رو انجام بدم! (البته اگه بشه که صفحه ی php، فقط به آدرس مورد نظر من جواب بده که بهتر میشه! یعنی با مشخص کردن آدرس یا آی پی اون)

رضا قربانی
یک شنبه 12 خرداد 1392, 14:41 عصر
با سلام و خسته نباشید خدمت همگی دوستان :قلب:
بدون مقدمه
جریان کار این موضوع زمانی رخ می دهد که افرادی بدون اینکه عکسی را دانلود و بر روی سرور خود آپلود کنند، به راحتی و با لینک کردن آن عکس از سایت شما باعث مصرف بیش از حد انتظار پهنای باند می شوند. مخصوصا اگر مطلب شما مطلبی پر بیننده باشد و چندین بار این کار انجام شود. اما جای نگرانی نیست.

برای جلوگیری از این موضوع می توانید از فایل .htaccess موجود در فولدر اصلی هاست خود استفاده کنید :


RewriteEngine on

RewriteCond %{HTTP_REFERER} !^$

RewriteCond %{HTTP_REFERER} !^http://(www\.)?yourdomain.com/.*$ [NC]

RewriteRule \.(gif|jpg|png)$ - [F]


موفق باشید

aminbrleevb
چهارشنبه 15 خرداد 1392, 16:58 عصر
با سلام
دوستان سوال من در مورد RewriteRule بود البته یکم فرق داره
تا الان من با این دستور میومدیم و آدرس زیر رو تبدیل به آدرس 2 می کردیم


آدرس قبلی
localhost/index.php?fbc=25
کد httaccess
RewriteRule ^fbc=(.*)?$ ./index.php?fbc=$1 [L]
آدرس جدید
localhost/fbc=25&

تا اینجا مشکلی نیست مشکل از اینجا شروع میشه که فرض رو بر این بزارین که ما در آدرس اولیه 2 متغیر داشته باشیم مثلا


localhost/index.php?fbc=25&cn=15

حال من می خواهم یک همچین آدرسی رو بدیت بیاورم


localhost/cn=12


یعنی کدی می خواهم که متغیر اولیه رو نادیده بگیره
شاید سوالم مفهمو نباشه ولی فرض کنید که ما در سایتون یک آدرس داریم با این نام
localhost/num.html
که به جای num یک عدد از 1 تا 10 قرار دارد حال می خواهم کاری کنم که وقتی ما آدرس زیر رو وارد می کنیم
localhost/sd=65&num=5
صفحه ای رو باز کند که با 5.html هست
امیدوارم منطورم رو متوجه شده باشید تاکید میکنم که num متغیر اول نباشد
با تشکر

rash44
جمعه 07 تیر 1392, 10:42 صبح
سلام
برای ایجاد ساب دامین مجازی wild card DNS بر روی سرور اشتراکی فعال هست .

از این کد استفاده می کنم :


RewriteEngine On RewriteCond %{HTTP_HOST} ^([^.]+).web.ir$ [NC] RewriteCond %1 !^(www|ftp|mail)$ [NC] RewriteRule ^.*$ http://web.ir/blog/blog.php?id=%1


از کد زیر هم استفاده کردم :


RewriteEngine On
RewriteCond ${HTTP_HOST} ^([^.]+).web.ir$ [NC]
RewriteCond $1 !^(www|ftp|mail)$ [NC]
RewriteRule ^(.*)$ http://web.ir/blog/blog.php?id=$1



با وارد کردن ساب دامین ها ، صفحه پیش فرض سرور نمایش داده میشه

rash44
شنبه 08 تیر 1392, 14:54 عصر
سلام
برای ایجاد ساب دامین مجازی wild card DNS بر روی سرور اشتراکی فعال هست .

از این کد استفاده می کنم :


RewriteEngine On RewriteCond %{HTTP_HOST} ^([^.]+).web.ir$ [NC] RewriteCond %1 !^(www|ftp|mail)$ [NC] RewriteRule ^.*$ http://web.ir/blog/blog.php?id=%1


از کد زیر هم استفاده کردم :


RewriteEngine On
RewriteCond ${HTTP_HOST} ^([^.]+).web.ir$ [NC]
RewriteCond $1 !^(www|ftp|mail)$ [NC]
RewriteRule ^(.*)$ http://web.ir/blog/blog.php?id=$1



با وارد کردن ساب دامین ها ، صفحه پیش فرض سرور نمایش داده میشه

لطفا راهنمائی کنید

رضا قربانی
یک شنبه 09 تیر 1392, 10:33 صبح
تا اینجا مشکلی نیست مشکل از اینجا شروع میشه که فرض رو بر این بزارین که ما در آدرس اولیه 2 متغیر داشته باشیم مثلا

localhost/index.php?fbc=25&cn=15




حال من می خواهم یک همچین آدرسی رو بدیت بیاورم

localhost/cn=12



داداشی گل وقتی دو تا گت ارسال می کنید دیگه نمیشه موقع تغییر آدرس یکی از گت ها رو حذف کنید localhost/cn=12 (یکی دیگه رو کجا باید جا بدیم ؟) برای ارسال دو گت می تونید از این کد استفاده کنید :

RewriteRule ^([^-]*)-([^-]*)/?\.html$ product.php?view=$1&product=$2 [L]

خروجیش میشه www.abc.com/130/cnc.html (http://www.abc.com/130/cnc.html)
یا برای سئو هم می تونید به این شکل تغییر بدید abc.com/130-cnc.html
و محتویات مقدار گت ها هم از پست شماره 80 همین تاپیک

پست های قبلی رو مطالعه کنید به راحتی می تونید آدرس های خودتون رو بهینه کنید.
موفق باشید

رضا قربانی
یک شنبه 09 تیر 1392, 10:42 صبح
سلام
برای ایجاد ساب دامین مجازی wild card DNS بر روی سرور اشتراکی فعال هست .

از این کد استفاده می کنم :


RewriteEngine On RewriteCond %{HTTP_HOST} ^([^.]+).web.ir$ [NC] RewriteCond %1 !^(www|ftp|mail)$ [NC] RewriteRule ^.*$ http://web.ir/blog/blog.php?id=%1


از کد زیر هم استفاده کردم :


RewriteEngine On
RewriteCond ${HTTP_HOST} ^([^.]+).web.ir$ [NC]
RewriteCond $1 !^(www|ftp|mail)$ [NC]
RewriteRule ^(.*)$ http://web.ir/blog/blog.php?id=$1



با وارد کردن ساب دامین ها ، صفحه پیش فرض سرور نمایش داده میشه

دوست من از سرور اشتراکی استفاده نکنید و تست بگیرید .

رضا قربانی
یک شنبه 09 تیر 1392, 18:30 عصر
یک نکته مهم که خیلی از بچه ها به مشکل می خورن و پیام میدن اینه که در بعضی از مواقع (مثلا برای دو زبانه بودن سایت) نیاز دارن تا دو تا فایل .htaccess در فولدر های متفاوت ایجاد کنند (یکی در ریشه سایت و دیگری در فولدر)در اینجا به ارور 500 بر می خورند :

که راه حل مشکل اینه که وقتی فایل .htaccess رو در فولدر جدا ایجاد می کنید در ابتدای فایل از این کدها استفاده نکنید (مستقیما ریرایت رو بنویسید) :
AddDefaultCharset utf-8
Options +FollowSymlinks
RewriteEngine On
همون در ریشه سایت در اولین فایل استفاده کردید کافیه ، و ما بقیه فایل های htaccess از فایلی که در ریشه سایت هست پیروی می کنند .

موفق باشید

redhat2
چهارشنبه 12 تیر 1392, 16:18 عصر
من دارم یه mvc مینویسم ، میخوام تمامی url هایی که تایپ می کنم در قسمت آدرس بار ، Rewrite بشه روی index.php یعنی به این صورت :

index/controller یا index/example یعنی rewrite بشه روی index.php ولی یه صفحه ی هست به نام 404.php که نمی خوام Rerwite بشه برای اینکه تنها فقط این صفحه یعنی میزنم index/404.php rewite نشه باید چیکار

کنم ، یعنی اطلاعات صفحه ی 404.php را نشون بده ؟

رضا قربانی
شنبه 15 تیر 1392, 12:37 عصر
اینطوری که نمیشه . شما باید از پایه بیاموزید و جریان کار رو توی دستتون بگیرید . اینطوری که شما بیان کردید متوجه شدم که چیزی زیادی در این مورد نمیدونید . کلیه اطلاعات در این تاپیک موجوده و هر عملی هم که می خواهین میتونید انجام بدید ، و فقط کافیه که خودتون تلاش و استفاده کنید .

موفق باشید دوست من

redhat2
دوشنبه 17 تیر 1392, 11:13 صبح
سلام به دوستان ، یه سوال داشتم ،

این فایل htaccess منه :



<Files .htaccess>

order allow,deny

deny from all

</Files>

RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

Options -Indexes

RewriteRule ^(.*)$ index.php?url=$1 [L,QSA]


من یه mvc دارم ،

که مثلا یکی از Controller ها به این صورت هست :

category/show/music من میخوام Action که اینجا show هست را از url حذف کنم و این را تبدیل کنم به این حالت :
category/music میشه یکی برام htaccess را برام بازنویس کنه ؟ ممنون.

h.rezaee
سه شنبه 18 تیر 1392, 16:17 عصر
سلام. یک سوال؟؟؟؟؟؟؟؟
کل تاپیک رو خوندم ولی نیافتم. نمی دونم شاید بود بنده متوجه نشدم.
ببینید اگه بخوایم سطح دسترسی رو از طریق آدرس دهی ببندیم ولی از طریق خود برنامه این امکان وجود داشته باشه چکار باید بکنیم.
مثلا ما یک پوشه به اسم Admin داریم که در اون فایل هایی مثل login.php ، index.php ، txtmanagement.php و ..... دیگه باشه. ما می خواهیم کاری کنیم که دیگه با ادرس دهی مستقیم ( مثلا در آدرس بار نوشتیم http://localhost/foldername/admin/txtmanagement.php ) این صفحه باز نشود ولی از طریق خود برنامه امکان دسترسی وجود داشته باشد.
ببینید بنده یک سری کدهای اینجا رو تست کردم یا جواب نمی داد یا سطح دسترسی رو به طور کلی می گرفت یعنی حتی کاربر آدرس http://localhost/foldername/admin رو وارد می کرد هیچ چیز براش نمایش داده نمی شد!!!!!!!!!!!!!!!!!!!
ممنون میشم اگه راهنمایی بفرمایید.

رضا قربانی
سه شنبه 01 مرداد 1392, 13:01 عصر
من دارم یه mvc مینویسم ، میخوام تمامی url هایی که تایپ می کنم در قسمت آدرس بار ، Rewrite بشه روی index.php یعنی به این صورت :

index/controller یا index/example یعنی rewrite بشه روی index.php ولی یه صفحه ی هست به نام 404.php که نمی خوام Rerwite بشه برای اینکه تنها فقط این صفحه یعنی میزنم index/404.php rewite نشه باید چیکار

کنم ، یعنی اطلاعات صفحه ی 404.php را نشون بده ؟
باید موقع اجرا صفحه 404 رو به .htm در url وارد و از کد زیر استفاده نمایید :


RewriteRule ^404\.htm$ /404.php [L]
موفق باشید

رضا قربانی
سه شنبه 01 مرداد 1392, 13:08 عصر
ببینید اگه بخوایم سطح دسترسی رو از طریق آدرس دهی ببندیم ولی از طریق خود برنامه این امکان وجود داشته باشه چکار باید بکنیم.
مثلا ما یک پوشه به اسم Admin داریم که در اون فایل هایی مثل login.php ، index.php ، txtmanagement.php و ..... دیگه باشه. ما می خواهیم کاری کنیم که دیگه با ادرس دهی مستقیم ( مثلا در آدرس بار نوشتیم http://localhost/foldername/admin/txtmanagement.php ) این صفحه باز نشود ولی از طریق خود برنامه امکان دسترسی وجود داشته باشد.
دوست من آدرس اصلی رو فقط و فقط خود شما میدونید و کسی هم نمیتونه در بیاره در صورتی که جایی از سایتتون لینک نکنید
ببینید الآن شما با این حرفتون کل فایل اچ تی اکسس رو زیر سوال بردید . خب وقتی میخواهید فقط از یک آدرس وارد بشه چه لزومی داره ریرایتش کنید همون آدرس اصلی رو وارد کنید :لبخند: یه کم بیشتر در مورد این گونه فایل تحقیق کنید .
موفق باشید

learn30t
سه شنبه 01 مرداد 1392, 13:20 عصر
البنه یکی دیگه از دلایل اینترنال ارور میتونه مشکل خوب کانفیگ نشدن htaccess باشه

abolfazlso
یک شنبه 03 شهریور 1392, 02:15 صبح
واسه درست کردن htaccess از این سایت استفاده کنید خیلی جالبه و کار سئو کردنو اسون کردhttp://www.htaccesseditor.com/en.shtml

Veteran
پنج شنبه 28 شهریور 1392, 20:35 عصر
این کد htaccess من



Options +FollowSymlinks
RewriteEngine On
RewriteBase /CMS
RewriteRule ^more/([^/]*)/([^/]*)$ more.php?more=$1&title=$2 [L]

RewriteRule ^Category/([^/]*)/([^/]*)$ index.php?Category=$1&title=$2 [L]

RewriteRule ^([^/]*)$ index.php?view=$1 [L]


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

<script type="text/javascript" src="frontSite/js/style.js"></script>
سایت رو باز میکنم بعد با فایرباگ که چک میکنم.


"NetworkError: 404 Not Found - http://localhost:81/CMS/more/2/frontSite/css/style.css"

مشکل کجاس ؟

رضا قربانی
یک شنبه 31 شهریور 1392, 11:41 صبح
آدرس دهی های کل سایتت باید به صورت کامل باشه.
آدرس فراخوانی فایل ها (css-js-jquery - .... همه)
آدرس دهی به لینک ها ....

مثال :
<script type="text/javascript" src="http://www.test.com/frontSite/js/style.js"></script>or
<a href="http://www.test.com/contact.html" > link</a

Veteran
یک شنبه 31 شهریور 1392, 12:03 عصر
ممنون از جوابتون
با

<base href="http://localhost:81/CMS/">
مشکل برطرف شذ.

ershad_tb
چهارشنبه 03 مهر 1392, 12:46 عصر
راهی هست که دایرکتوری با دستور Options +Indexes برای همه بسته باشه ولی برای آی پی های بخصوص باز باشه ؟

sajadpm
دوشنبه 08 مهر 1392, 12:13 عصر
با سلام

من بر روی هاست ام 2 دامنه دارم که می خواهم یکی از دامنه ها فقط یک دایرکتوری خاص رو باز کنه و به بقیه دایرکتوری ها دسترسی نداشته باشه ! چجوری می توانم این کارو با htaccess انجام بدم . سپاس فراوان

رضا قربانی
دوشنبه 08 مهر 1392, 17:18 عصر
با سلام

من بر روی هاست ام 2 دامنه دارم که می خواهم یکی از دامنه ها فقط یک دایرکتوری خاص رو باز کنه و به بقیه دایرکتوری ها دسترسی نداشته باشه ! چجوری می توانم این کارو با htaccess انجام بدم . سپاس فراوان
خب موقع نوشتن دستورات htaccess آدرس دهی های فایل هارو همراه با آدرس دامنه بدید (به صورت کامل)

sajadpm
دوشنبه 08 مهر 1392, 17:27 عصر
ببخشید منظورتون رو متوجه شدم . فرض کنید من دو عدد دامنه به نام های site1.com و site2.org دارم که هر دوشون روی یک هاست ست شده . و در هاست مثلا پوشه های :
css , image , js و ... وجود دارد . حالا دامنه site1.com که می خواهم به همه پوشه دسترسی داشته باشه و بتون همه پوشه هارو باز کند ولی دامنه site2.org فقط بتونه پوشه image رو باز کند که میشه این آدرس site2.org/image رو باز کنه و بقیه پوشه ها رو نتونه باز کنه . تشکر از شما منتظر پاسختون هستم

رضا قربانی
یک شنبه 14 مهر 1392, 17:46 عصر
سلام
من مطلب شما رو در مورد .htaccess خوندم. جالب بود ممنون.
من این فایل و نوشتم و در دایرکتوری ای که مایلم تحت تاثیر عملکرد این فایل قرار بگیره ذخیره کردم، ولی هیچ نتیجه ای نمی گیرم یا به عبارتی فایل عمل نمی کنه. rewrite_madule فعال هست و کد من در این فایل اینه:

RewriteEngine On # Turn on the rewriting engine
RewriteRule ^profile/([a-zA-Z]+)/?$ profile.php?user_name=$1 [NC,L]
جایی خوندم که باید این فایل رو با استفاده از cuteftp و در مود ASCII در داریکتوری مورد نظر آپلود کنم. درسته؟
لطفاً اگه مطلبی برای راهنمایی هست، یا من اشتباه می کنم بفرمایید.
سپاسگزار



AddDefaultCharset utf-8
Options +SymLinksIfOwnerMatch
RewriteEngine On

RewriteRule ^profile/([^/]*)/([^/]*)/?$ profile.php?user_name=$1 [QSA,NC,L]

خروجی آدرس دهی به این صورته :
www.abc.com/profile/test/

موفق باشید .

alisongmusic
پنج شنبه 14 آذر 1392, 00:53 صبح
سلام خسته نباشید...

با وجود کد


RewriteCond %{HTTP_REFERER} domain\.ir [NC,OR]
RewriteRule .* - [F]

و حتی با اضافه کردن ErrorDocument 403 /403.php به .htaccess بعد از اجرای کد مسدود سازی سایت ارجاع کننده به سایتم صفحه 403 ای که اختصاصی ساختم هنگام رخ دادن این کد ولی فایل 403 دیگری به نمایش در میاد .... چیکار کنم ؟؟؟؟؟

رضا قربانی
پنج شنبه 14 آذر 1392, 10:22 صبح
سلام خسته نباشید...

با وجود کد


RewriteCond %{HTTP_REFERER} domain\.ir [NC,OR]
RewriteRule .* - [F]

و حتی با اضافه کردن ErrorDocument 403 /403.php به .htaccess بعد از اجرای کد مسدود سازی سایت ارجاع کننده به سایتم صفحه 403 ای که اختصاصی ساختم هنگام رخ دادن این کد ولی فایل 403 دیگری به نمایش در میاد .... چیکار کنم ؟؟؟؟؟
403 به این صورت باید بنویسی : ErrorDocument 404 http://www.test.com/403.html


راهی هست که دایرکتوری با دستور Options +Indexes برای همه بسته باشه ولی برای آی پی های بخصوص باز باشه ؟
بله در پست های قبلی بن کردن آی پی ها توضیح داده شده . باید کل سایت رو بن کنید و فقط دسترسی رو برای بعضی از آی پی ها باز کنید . (البته آی پی ها همیشه در حال تغییر هستند و کاربر باید آی پی استاتیک داشته باشه).

موفق باشید

رضا قربانی
پنج شنبه 14 آذر 1392, 10:24 صبح
سلام خدمت همگی دوستان برنامه نویس
شاید در سایت شما مشکلات امنیتی وجود داشته باشد که با یک اسکن ساده با استفاده از ابزار های کمکی نظیر Acunetix آن ها را نمایش دهد!
در این پست میخوایم با یک httaccess از این کار جلوگیری کنیم ... :


RewriteEngine On
<IfModule mod_rewrite.c>
RewriteCond %{HTTP_USER_AGENT} ^w3af.sourceforge.net [NC,OR]
RewriteCond %{HTTP_USER_AGENT} dirbuster [NC,OR]
RewriteCond %{HTTP_USER_AGENT} nikto [NC,OR]
RewriteCond %{HTTP_USER_AGENT} SF [OR]
RewriteCond %{HTTP_USER_AGENT} sqlmap [NC,OR]
RewriteCond %{HTTP_USER_AGENT} fimap [NC,OR]
RewriteCond %{HTTP_USER_AGENT} nessus [NC,OR]
RewriteCond %{HTTP_USER_AGENT} whatweb [NC,OR]
RewriteCond %{HTTP_USER_AGENT} Openvas [NC,OR]
RewriteCond %{HTTP_USER_AGENT} jbrofuzz [NC,OR]
RewriteCond %{HTTP_USER_AGENT} libwhisker [NC,OR]
RewriteCond %{HTTP_USER_AGENT} webshag [NC,OR]
RewriteCond %{HTTP:Acunetix-Product} ^WVS
RewriteRule ^.* http://127.0.0.1/ [R=301,L]
</IfModule>


موفق باشید

alisongmusic
پنج شنبه 14 آذر 1392, 11:14 صبح
ببخشید بازم نشد همون 403 دیگری رو باز کرد حتی لینک کامل ادرس 403

آخه مشکل عجیب اینکه وقتی ای پی رو مسدود میکنم فایل 403 اختصاصی من باز میشه ولی وقتی سایتی رو مسدود میکنمم 403 دیگری باز میشه

ErrorDocument 404 http://www.test.com/403.html


403 Forbidden

Access to this resource on the server is denied!
Powered By LiteSpeed Web Server
LiteSpeed Technologies is not responsible for administration and contents of this web site!

رضا قربانی
پنج شنبه 14 آذر 1392, 12:30 عصر
خب این دستور رو در ابتدای دستورات قرار بدید و بقیه دستورات در ادامه

alisongmusic
پنج شنبه 14 آذر 1392, 13:31 عصر
حالا چطور میشه مثلا تو این کد گفت که اگر کسی از فلان سایتی ارجاع شد با تو جه به کد

RewriteCond %{HTTP_REFERER} domain\.ir [NC,OR]

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

alisongmusic
یک شنبه 17 آذر 1392, 00:44 صبح
کسی نیست از عزیزان کمکم کنه ؟؟؟؟؟

mo0zhgan
چهارشنبه 23 بهمن 1392, 09:58 صبح
سلام روز همگی بخیر
من می خوام پسوند صفحات سایتم رو به یه پسونده دلخواه تغییر بدم
سایتم خیلی ساده است و ایستاست با: Html, css,java نوشته شده
راههای زیادی رو امتحان کردم متاسفانه موفق نشدم
ممنون می شم اگه راهنماییم کنید
(امیدوارم سوالم رو در قسمته درست مطرح کرده باشم)

FirstLine
یک شنبه 28 اردیبهشت 1393, 11:21 صبح
با سلام
من جستجو کردم و موارد مربوطه را چک کردم اما به نتیجه نرسیدم، لطفا راهنمایی بفرمایید
از xampp استفاده میکنم

میخوام همه درخواستها به فایل index.php در root ارسال بشه
مواردی که بصورت /blog/ بهمراه querystring هاش به فایل /blog.php ارسال بشه
مواردی که بصورت post/id/ بهمراه querystring هاش به فایل /post.php ارسال بشه

از کد زیر استفاده کردم خیلی هم باهاش کلنجار رفتم اما به نتیجه نرسیدم و پیغام خطای 500 میده




.htaccess

Options +FollowSymLinks -MultiViews

RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l

RewriteRule ^blog/([^/]*)$ blog.php?obj_url=$1 [L,NC,QSA]

RewriteRule ^post/([^/]*)$ post.php?obj_url=$1 [L,NC,QSA]

RewriteRule ^(\w+)$ index.php?id=$1




با تشکر

helboy2005
جمعه 10 مرداد 1393, 23:56 عصر
با سلام و تشکر از مطلب آموزنده تون
بنده یه سوال داشتم اگر بخواهم از طریق فایل
htaccess تمامی صفحاتی که پیغام 404 می دهند را با یک تغییر آدرس به صفحه جدیدی منتقل کنم، چه کاری باید انجام دهم.
به طور مثال آدرس:
www.example.com/news/item32
را که با باز شدن در سایت پیغام خطای 404 می دهد را به صفحه
www.example.com/old/news/item32
تبدیل کنم.

فقط نکته مهم اینه که صفحاتی که پیغام 404 می دهند این اتفاق بیوفتد.

k_yk1987
یک شنبه 16 شهریور 1393, 03:33 صبح
سلام و وقت بخیر
آیا امکانش هست از طریق این فایل دانلود را محدود کرد حالا یا با حجم یا با تعداد کانکشن ها و یا بازه های زمانی مختلف ؟

رضا قربانی
سه شنبه 29 مهر 1393, 23:24 عصر
دو دوست عزیز و دو پست آخر ،
در همین تاپیک توضیح داده شده . لطفا به پست های قبل تر مراجعه نمایید قطعا به جوابتون میرسید

kalemati12
پنج شنبه 11 دی 1393, 23:03 عصر
سلام

من صفحه 404.html ساختم و کد ErrorDocument 404 /404.html رو هم قرار دادم.
اما همه صفحات رو منتقل نمی کنه به 404.html

مثلا وقتی مینویسم:
http://site.ir/sdfsdfsdfsdfs.png
یا
http://site.ir/sdfs.html
یا کلا به صورتی که صفحه پسوند داشته باشه، صفحه به 404 منتقل میشه.
اما اگه به صورت:
http://site.ir/sdfsdfsdfsdfs
یا
http://site.ir/sdfs
باشه به صفحه 404 منتقل نمیشه و وارد سایت میشه و میگه صفحه وجود ندارد.

برطرف شدن این مشکل خیلی حیاتیه چون 30 هزار صفحه not found دارم توی گوگل وب مستر.
لطفا راهنمایی کنید.

behnamy01
شنبه 12 اردیبهشت 1394, 16:46 عصر
دوستان یک کد httacess میخوام که باهاش فقط چند تا ip رو allow کنم و بقیه رو ban کنم ولی میخوام که اگر Ip جز ip های مجاز نبود، به جای اینکه اررور مجاز نبودن دسترسی رو بده، الکی اررور 404 بده! داریم همچین چیزی؟

SirMoein
یک شنبه 21 تیر 1394, 01:46 صبح
سلام خدمت شما
مدت زیادیه دنبال یک کد میگردم که مطمئنم وجود خارجی داره در کدهای htacces
در واقع یک سری افراد تازه کار شروع به ریپ زدن قالب ها با نرم افزارهایی عین Httracker یا Webcopy میکنن ولی یک سری افراد حرفه ای تر اومدن با دستوراتی که درون فایل htacces [ودشون قرار دادند دسترسی به سورس index خودشون رو بستن و بلافاصله بعد از شروع برنامه ارور میده
از وجود این کد مطمئنم ولی هیچ کس اینو نمیدونست
ممنون میشم کمک کنید
باتشکر

phpdev
دوشنبه 22 تیر 1394, 14:29 عصر
سلام دادش گلم انصافا خیلی زحمت کشیدید بابت این آموزش خیلی خوبتون :تشویق:

ببین من یه مشکل بد توی این قضیه دارم . آقا به در و دیوار و جاده خاکی و اسفالت و راه آهن و سایتهای خارجی (کمی زبان بلدم) زدم ولی مشکلم حل نشدم کلی آموزش شما رو هم خوندم ولی نشد اگه مایل باشید حاضرم team wiever بزنم تا مشکلم حل بشه البته اگه شما موافق باشید .:لبخندساده:

1 - مدل ادرس دهی توی صفحه باید چطوری باشه ؟
2 - مدل کد htaccess باید چطوری باشه ؟

این سایتمه ولی هرکاری کردم نتونستم درستش کنم الان این کد htaccess هست که توی هاست قرار داره ولی کار نمیکنه :افسرده:



Options +FollowSymLinks
RewriteEngine On
RewriteRule ^products/([a-zA-Z0-9]+)/([a-zA-Z0-9]+)$ products.php?title=$1&carID=$2 [QSA,NC,L]


ببین داداش بعضی پارامترها string هست و برخی دیگر number !!
میخوام این آدرس :
http://charcharkhkala.com/products.php?title=آزرا&carID=0002 (http://charcharkhkala.com/products.php?title=%D8%A2%D8%B2%D8%B1%D8%A7&carID=0002)(البته تو این ادیتور درست نمایش داده نمیشه لینکشو گذاشتم تا خودتون مستقیم ببینید)

البته بعضی آدرساشم اینجوریه (http://charcharkhkala.com/products.php?title=%D8%B3%D8%A7%D9%86%D8%AA%D8%A7% D9%81%D9%87-IX45&carID=0007)

بهر حال میخوام اینجوری بشه
www.charcharkhkala.com/pro/carName/0003 (http://www.charcharkhkala.com/pro/carName/0003) البته بجای carName نام فارشی میخوام بذارم اینجا ادیتور متن درست نشون نمیده یا مثلا میتونم جاشون رو عوض کنم مثلا

www.charcharkhkala.com/pro/0003/آزرا (http://www.charcharkhkala.com/pro/0003/آزرا)

این فایلها رو هم فرستادم شما زحمت بکشید لطفا یه مثال تست شده رو برام بنویسید که حالیم بشه خیلی گیج شدم :متعجب:

phpdev
جمعه 26 تیر 1394, 11:29 صبح
آقا یکی کمک کنه لطفا .:گریه:

phpdev
شنبه 27 تیر 1394, 10:33 صبح
سلام عید همگی مبارک

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

ولی بالاخره متوجه شدم مشکل از کجاست.

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



<a href="products/proName/0003" title="title">proName</a>

بعدش توی htaccess اینو بزنید



Options +FollowSymLinks
RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^products/(.*)/(.*)$ ./products.php?title=$1&carID=$2

و حاشو ببرید البته یه نکته داره بعضی وقتها ممکنه فایلهای استایل و اسکریپتهاتون لود نشن که باید توی صفحه مورد نظر توی head اون بالای بالا اینو بزنید . آدرس دهی :




<base href="http://yourdomain.com/" />



دوستان اگه مشکلی بود بگن در حد اطلاعاتم راهنمایی میکنم.

موفق باشید.

phpdev
شنبه 27 تیر 1394, 13:56 عصر
یه سوال اینکه آخر دستورات [NC] یا مثلا [L] یا جلوی بعضی دستورات !-f میزنید یا [QS] یعنی چی اگه میشه با مثال بیان نمایید.

ata3929
دوشنبه 09 شهریور 1394, 09:07 صبح
چطوری میتونم با تغییر در کد htaccess بشه
صفحات بدون index خطا بده
با کد Options -Indexes استفاده میکنم ولی خطای 403 میده
راهی هست که بشه صفحات بدون کد و خطای 404 نشون بده ؟
(لطفا کد کامل و بزارین )

amir115
چهارشنبه 15 مهر 1394, 20:49 عصر
سلام بچه ها خسته نباشید یه سوال اگه بخایم به عنوان مثال اپلود پسوندی رو در یک پوشه جلوگیری کنیم باید چیکار کنیم مثلا فرض کنید پوشه فایل های اپ ما پوشه uploads هست خوب حالا هر کاربری که ثبت نام میکنه با نام کاربری خودش در داخل پوشه اپلود یه پوشه دیگه ساخته میشه تا فایل های خودشو تو پوشه خودش با یوزر خودش اپلود کنه حالا سوال اینجاست که چطور با htaccess کاری کنیم که پوشه یوزر ها در داخل پوشه uploads از اپلود کردن غیر مجاز جلوگیری کنیم من منظورم کلی هست مثلا میخام اینو بگم که چطور یه فایل htaccess تو پوشه uploads ایجاد کنم تا هواسش به داخل پوشه های یوزر ها باشه تا یوزی فایل مخرب یا پسوند غیر مجاز اپلود نکنه این سوال اول سوال دوم اینکه چطور با htaccess پسوند های مجاز رو معرفی کنم تا هر کاربر تو پوشه کاربری خودش فایل های مجاز رو اپلود کنه سوالم تقریبا یکی هست فقط میخام کد این کارو واسه htaccess بزارین با سپاس

hamedwollf
دوشنبه 27 مهر 1394, 19:53 عصر
سلام دوستان
کد user agent می خوام که گوگل بات allow کنه و باقیه بات ها رو deny میشه بدین

رضا قربانی
پنج شنبه 17 دی 1394, 15:42 عصر
با عرض شرمندگی بعد از دو سال برگشتیم به این تاپیک

بدون مقدمه یه چند تا کد و توضیح براتون میذارم :
با این یه خط دستور تمامی پسوندهای مثلا php رو به html تبدیل می کنید (برای سئو) . معمولا این دستور رو در انتهای فایلتون قرار بدید تا با دیگر پسوندهای html که تولید کردید قاطی و به ارور برخورد نکنید .


RewriteRule ^(.*).html$ $1.php [L]

یه داستان جدید در مورد گوگل اینه که باید دایرکتوری های منظم برای سایتتون ایجاد کنید برای مثال من با این کد میگم نام صفحه about.php منو تبدیل کن به یک فولدر به اسم about/


RewriteRule ^about/$ about.php [L]
جالب اینجاست که شما زمانی که در آدرس بار چنین وارد می کنید about/index.html با ارور مواجه میشید و در اینجا گوگل متوجه میشه که شما به طور ناشیانه ای دارید آدرس ها رو بهتر می کنید و امتیاز کمتری می گیرید . شما برای رفع این مشکل باید : برای هر دفعه تغییر آدرس برای هر یک فایل دو ریرایت انجام بدید :


RewriteRule ^about/$ about.php [L]
RewriteRule ^about/index.html$ about.php [L]
با این دو خط کد می تونید از این مشکل در امان باشید .


در سئو وقتی آدرس دهی انجام میدید که به فولدر ختم میشه باید یه جوری برنامه نویسی کنید تا آدرس دهی هاتون منظم و پله پله ایجاد بشه برای مثال :
با ریرایت کردن یک فایل php میاید این آدرس رو درست می کنید : www.test.com/product/ (http://www.test.com/product/)
برای گروه بندی محصولات باید به این صورت آدرس دهی کنید : www.test.com/product/group/ (http://www.test.com/product/group/)
برای نمایش محصول باید به صورت عمل کنید : www.test.com/product/group/name.html (http://www.test.com/product/group/name.html)

اگر دقت کنید آدرس دهی ها پله پله ای شده . بارها شده جاهای مختلف دیدم که فولدر های الکی درست کردن و وقتی یه قسمتش رو پاک میکردم با خطا مواجه میشدم . این اشتباهه . پس از این به بعد می تونید آدرس های منظم تولید کنید تا در گوگل هم منظم دیده بشید ، دقیقا به همین صورت که آدرس دهی می کنید در گوگل پله پله ای نمایش داده میشید (موقع نمایش سایتتون در گوگل ، زیر عنوان سایتتون این شاخه بندی ها نمایش داده میشه)
مثلا رکوردی که گوگل میاره :
محصول سایت تست
product group
(یعنی فولدر های قبل محصول رو براتون لینک میکنه - اگر قوانین رو رعایت کنید)
امیدوارم واضح توضیح داده باشم .
موفق و پیروز باشید .

Darkpriest
سه شنبه 13 بهمن 1394, 19:16 عصر
سلام
خیلی ممنون از آقای قربانی بابت راهنمایی های مفیدتون.
بنده یه مشکلی دارم، یه سرور دانلود دارم که لینک ها به صورت مستقیم لینک داده شده، حالا میخوام هر کسی روی لینک دانلود کلیک کرد، پیام وارد کردن یوزر پسورد براش بیاد و یوزر پسوردشو که توی دیتابیس هست بزنه و اگه صحیح بود بتونه دانلود کنه
یه نوع هست که یوزر و پسورد در فایل htpasswd ذخیره میکنی که اون هیچ بدرد بنده نمیخوره، می خوام یوزر ها رو از دیتابیس بخونه، کلی تحقیق کردم فهمیدم یه ماژول هست برای اپاچه به اسم Mod_auth_mysql اما هرچی باهاش ور رفتم کار نکرد فقط کد رو که توی htaccess میزارم ارور 500 میده صفحه
ممنون میشم راهنمایی کنید و اگه راه راحت تری هست به بنده بگید. :لبخندساده:

reza898
جمعه 10 اردیبهشت 1395, 20:16 عصر
سلام خسته نباشید
دوستان من یه راهنمایی می خوام ، چه کدی باید توی اج تی اکسز نوشت که مثلا هر لینکی از سایتمون که در یک سایت ارجاع داده شده مسدود بشه و کلا سایت رو باز نکنه ؟
مثلا لینک های مختلفی از سایت ما توی سایت domine.com هست حالا ما چطور میتونیم این سایت domine.com رو ببریم توی لیست سیاه که ازش به سایتمون ارجاع داده نشه مثلا با کلیک بر روی لینک ها اصلا سایت ما بالا نیاد یا مثلا به یه مسیر که وجود نداره هدایت بشه مثل www.test.com/jfhfjkhkhj.php (آدرس سایت فرضی ما test.com هست)

رضا قربانی
شنبه 06 شهریور 1395, 11:35 صبح
بارها شده و برای منم پیش اومده که وقتی از مد ریرایت استفاده می کنیم باید آدرس دهی ها کامل باشه حتی در فایل های خارجی CSS مثل فونت یا تصویر یا یا حتی جی کوئری یا JS و ... چون در غیر این صورت هیچ کدوم نمایش نمیده . (خیلی ها روی فونت مشکل داشتن)

با کدی جدید تمام مشکلات شمارو حل کردم .
برین حال کنید .




# Control BY mr.Ghorbani
<ifModule mod_deflate.c>
<filesMatch "\.(svg|ttf|otf|eot|woff|woff2|css|js|php|html)$">
Header set Access-Control-Allow-Origin "*"
</filesMatch>
</ifModule>
# END Control mr.Ghorbani

موفق باشید

رضا قربانی
شنبه 06 شهریور 1395, 11:41 صبح
سلام
خیلی ممنون از آقای قربانی بابت راهنمایی های مفیدتون.
بنده یه مشکلی دارم، یه سرور دانلود دارم که لینک ها به صورت مستقیم لینک داده شده، حالا میخوام هر کسی روی لینک دانلود کلیک کرد، پیام وارد کردن یوزر پسورد براش بیاد و یوزر پسوردشو که توی دیتابیس هست بزنه و اگه صحیح بود بتونه دانلود کنه
یه نوع هست که یوزر و پسورد در فایل htpasswd ذخیره میکنی که اون هیچ بدرد بنده نمیخوره، می خوام یوزر ها رو از دیتابیس بخونه، کلی تحقیق کردم فهمیدم یه ماژول هست برای اپاچه به اسم Mod_auth_mysql اما هرچی باهاش ور رفتم کار نکرد فقط کد رو که توی htaccess میزارم ارور 500 میده صفحه
ممنون میشم راهنمایی کنید و اگه راه راحت تری هست به بنده بگید. :لبخندساده:

مشکل ارور 500 از 3 خط کد اول قایل اچ تی اکسس هست (با سرورتون تنظیم نمیشه)
شاید با این مشلت حل شه :


AddDefaultCharset utf-8
Options +SymLinksIfOwnerMatch
RewriteEngine On


سلام خسته نباشید
دوستان من یه راهنمایی می خوام ، چه کدی باید توی اج تی اکسز نوشت که مثلا هر لینکی از سایتمون که در یک سایت ارجاع داده شده مسدود بشه و کلا سایت رو باز نکنه ؟
مثلا لینک های مختلفی از سایت ما توی سایت domine.com هست حالا ما چطور میتونیم این سایت domine.com رو ببریم توی لیست سیاه که ازش به سایتمون ارجاع داده نشه مثلا با کلیک بر روی لینک ها اصلا سایت ما بالا نیاد یا مثلا به یه مسیر که وجود نداره هدایت بشه مثل www.test.com/jfhfjkhkhj.php (http://www.test.com/jfhfjkhkhj.php) (آدرس سایت فرضی ما test.com هست) مشکلتون با توابع $SERVER حل میشه در موردش تحقیق کن و کاراییشو یاد بگیر قطعا به هدفت میرسی . من چیزی که توی میخواییو با ایت توابع به هدف رسیدم
موفق باشید

zohremehran
دوشنبه 29 آبان 1396, 19:14 عصر
با سلام خدمت دوستان
من برای دو زبانه کردن سایتم متغیر lang$=fa , و یا en قرار میدم که با htaccess به این صورت میشه
<a href="http://localhost/htaccess/index.php/fa">fa</a>
<a href="http://localhost/htaccess/index.php/en">en</a>

و این کد ها رو هم در بخش htaccess قرار دادم


RewriteRule ^([^/]*)/([^/]*)/?$ index.php?lang=fa [QSA,NC,L]
RewriteRule ^([^/]*)/([^/]*)/?$ index.php?lang=en [QSA,NC,L]

الان مشکل من اینجاس که وقتی به صفحه ایندکس میام میخوام اگه کاربر روی en کلیک کرده سایت رو به صورت انگلیسی و
وقتی روی fa کلیک کرده به صورت فارسی نمایش بده که در اینجا فقط مقدار fa رو میتونم داخل متغیر lang$ قرار بدهم
ممنون میشم راهنماییم کنید

zohremehran
سه شنبه 30 آبان 1396, 12:54 عصر
دوستان کسی نمیتونه به من کمک کنه؟

رضا قربانی
شنبه 25 بهمن 1399, 11:13 صبح
تاپیکو آوردم بالا کسایی که مشکل htaccess دارن مشکلاتشونو برطرف کنن.