הוסטס - פורום אחסון האתרים הגדול בישראל

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   htaccess יכול להריץ סקריפט ? (https://hosts.co.il/forums/showthread.php?t=97355)

Kuchi 20-05-12 17:10

htaccess יכול להריץ סקריפט ?
 
היי
אני מחפש מלא זמן ולא מוצא דרך אולי מישהו פה יודע להכווין אותי
מלא זמן אני מנסה לגלות אם זה אפשרי להריץ קובץ PHP ברקע או שאילתה של SQL בתוך הקובץ של htaccess
האם זה אפשרי ?
מישהו יודע הכיצד ?
תדה לעוזרים |לב|

meshuga 20-05-12 17:50

בקטע של משהו שירוץ בכל הדפים של אותה תקייה? לא משנה לאיזה קובץ אתה ניגש?

Kuchi 20-05-12 18:10

לא בדיוק
יש לי את הדבר הבא
ציטוט:

RewriteEngine on
RewriteCond %{REMOTE_ADDR} !^123\.123\.123\.123
RewriteRule ^.*$ "http://www.domain.com/404.html?http://www.domain.com/filecode/filename.rar.html"
אני רוצה לעשות שלפני שזה נותן להוריד את הקובץ זה יריץ קובץ PHP או שאילתה ...
בעצם ככה להעלות ב 1+ את כמות ההורדות (מאחר ואני לא משתמש בNGINX)
אגב מלא זמן לא ראיתי אותך :) נוסטלגיה חח אגב תודה על המענה ..

meshuga 20-05-12 18:21

ציטוט:

נכתב במקור על ידי Kuchi (פרסם 844649)
לא בדיוק
יש לי את הדבר הבא

אני רוצה לעשות שלפני שזה נותן להוריד את הקובץ זה יריץ קובץ PHP או שאילתה ...
בעצם ככה להעלות ב 1+ את כמות ההורדות (מאחר ואני לא משתמש בNGINX)
אגב מלא זמן לא ראיתי אותך :) נוסטלגיה חח אגב תודה על המענה ..

למה לא לעשות שכל הקבצים לתקייה המסויימת בעצם מכוונים לקובץ PHP שנותן header לפי סוג הקובץ וקורא ומדפיס אותו וככה זה יתן הורדה.
לפני הheader תעשה מה שאתה רוצה עם מסד נתונים...

Kuchi 20-05-12 19:29

מעמיס רצח על אפצי

אדיר 20-05-12 19:32

דרך נוספת היא לקבל לקובץ php את הנתיב/ הקובץ שצריך להוריד ולעשות שם את כל הבדיקות שבא לך, ואז באמצעות mod_xsendfile לשדר אותו לגולש.

Kuchi 20-05-12 19:35

אני חייב רק דרך HTACCESS אחרת אם הייתי עושה ב PHP אני יודע ...
כל הרעיון שזה מוגן בHTACCESS (לא אחד ..)

Shay Ben Moshe 20-05-12 21:00

נניח שהקובץ להורדה הוא file.rar ואמורים לגשת אליו דרך download/file.rar, והוא יושב באמת בתיקייה files/file.rar.
תעשה ש-download/file.rar מפנה לקובץ php כלשהו, נניח download.php ששולח header עם location ל-files/file.rar.

נשמע הכי סביר.

Kuchi 20-05-12 21:55

זהו שזה לא ממש ככה
הקובץ יושב ב cgi-bin/files/file.rar
והלינק שהמשתמש מקבל הוא domain.com/files/randomnum/randomdir/filename.rar
עכשיו יש בדיקה של HTACCESS בתיקיות הבאות
public_html
files
randomnum
הראנדום נאם זה יכול להיות מ 0 - 9
כל פעם שהמערכת יוצרת למשתמש לינק הורדה זה יוצר קובץ HTACCESS בתיקיה 0 - 9 אחת מאלה ויוצרת תיקיה עם שם הקובץ שנמצא ב תיקיה CGI-BIN/files (הMD5 שלו ...)
בקיצור מסובך חחחחח

Itay 21-05-12 00:11

למה ליצור את התיקיות האלה ולא לעשות את זה דינאמי? אתה באמת יוצר שם את הקבצים?
ואם אתה עושה שאם נכנסים נגיד עם עוד פרמטר, נגיד domain.com/files/randomnum/randomdir/hit/filename.rar בכתובת אז זה יפנה לעמוד PHP שיוסיף +1 לקאונטר, ואז יעביר אל domain.com/files/randomnum/randomdir/filename.rar זה לא תופס?
אני לא חושב שקיימת דרך להריץ דברים דרך htaccess, אולי אפשר להגדיר איזה סקריפט shell שאומר שכל קובץ שמבקשים מתיקיה מסויימת מריץ פקודה מסויימת (שקוראת לקובץ PHP שמעדכן את הקאונטר), אבל בשביל זה תצטרך למצוא מישהו שמבין בלינוקס מספיק טוב
המלצה שלי - תשאל את זה ב- http://stackoverflow.com (ואם תקבל תשובה יהיה נחמד לדעת מה היא)

Kuchi 21-05-12 00:15

לא יכול לוותר על הדרך שאמרתי ... יש סיבה לזה ..

Tomer 21-05-12 08:28

Kuchi,

אתה יכול לנסות להשתמש ב-
קוד:

php_value auto_prepend_file "file.php"
ובסקריפט עצמו שים התנייה (if) שהקובץ ירוץ רק כאשר מדובר על קובץ X (תבדוק את המערך $_SERVER לאיזה משתנה ייחודי שמופיע בקבצים שאתה נותן להורדה)

Kuchi 21-05-12 10:39

האמת ניסיתי את זה אבל משום מה לא יודע איך לעבוד עם זה זה לא מצליח
אגב תודה על העזרה פה

Tomer 21-05-12 10:47

כשהוספת את זה ל .htaccess, הסקריפט לא רץ לפני כל קובץ?

Kuchi 21-05-12 10:49

לא הוא לא רץ בכלל
הוא אמור לשלוח לי אימייל כאשר הוא רץ וזה לא קורה
עריכה :
תומר הצלחתי תודה !
עכשיו יש לי עוד שאלה אשמח אם מישהו יעזור
איך אני עושה בדיקה של נתיב לא ידוע ושרק אז זה יריץ את זה זאת אומרת
ציטוט:

<FilesMatch /files/([0-9])/([0-9A-Za-z]{14})/name.rar>
AddType application/x-httpd-php .html .htm
php_value auto_prepend_file "/home/dodo/domains/domain.com/public_html/email.php"
</FilesMatch>
name.rar = *.*

זאת אומרת רק כאשר הנתיב הוא של התיקיות אז הקוד ירוץ
תודה לעוזר

Tomer 21-05-12 12:58

לא הבנתי. ה FilesMatch שנתת תקין והסקריפט ירוץ בשביל name.rar

לדעתי אם תשנה את ה name.rar ל ([A-Za-z0-9\.]) זה יעבוד לכל הקבצים.

Kuchi 21-05-12 13:06

רק הדגמתי העניין הוא שבכללי <FilesMatch /files/([0-9])/([0-9A-Za-z]{14})/name.rar> לא עובד לי אני לא מצליח
יש לך מושג איך אני מפעיל את הקוד אך ורק על זיהוי שהנתיב הוא files/0-9/14lettersandnumbers/filename.type
זאת הכוונה שלי

Kernel 21-05-12 19:24

שתי דרכים נוספות:

ליצור לינק סימבולי לx שעות.
לערוך כל פעם את הhtaccess (בצורה אוטומטית) ולהוסיף חוק rewrite לקובץ המיועד.


על כל אלה. האפשרות הכי פשוטה. לעבור לnginx/lighttpd ולהתקין secure links. (יש מודל שומה גם לאפצ׳י. אבל אם אתה מעביר נפחים גדולים אז אתה תחנוק את השרת).

Kuchi 22-05-12 01:46

lighttpd תומך ב HTACCESS ?
הוא קל לתפעול ?
יש לך מדריכים טובים אם בעברית מצויין אם לא באגלית גם טוב
אגב NGINX כזה מעצבן צריך להגדיר כל דבר וזה הורג אותי ..
יש גם את LiteSpeed
אין לי נסיון בהם :\

בניה 23-05-12 07:50

תשקול שימוש בX-SEND-FILE
http://stackoverflow.com/questions/8...ith-apache-php
הPHP יכול ככה "לסמן" לAPACHE לבצע עוד בקשה אחרי שהוא מסיים את הבקשה הנוכחית, הPHP יסיים לרוץ ולא יעמיד על השרת והAPACHE יגיש את הקובץ בדיוק כמו כל קובץ סטטי
http://www.jasny.net/articles/how-i-php-x-sendfile/

Kernel 23-05-12 07:59

ציטוט:

נכתב במקור על ידי Kuchi (פרסם 844818)
lighttpd תומך ב HTACCESS ?
הוא קל לתפעול ?
יש לך מדריכים טובים אם בעברית מצויין אם לא באגלית גם טוב
אגב NGINX כזה מעצבן צריך להגדיר כל דבר וזה הורג אותי ..
יש גם את LiteSpeed
אין לי נסיון בהם :\

Lighttpd ו-Nginx לא משתמשים ב-HTACCESS מטעמי ביצועים, ההגדרות הם על אותו הבסיס אך שונות טיפה.

LiteSpeed הוא כמו Apache על סטרואידים, אבל המחיר בהתאם.

Kuchi 23-05-12 15:44

יש STANDART שלו שזה חינמי ... גם בסדר (התקנתי אתמול האמת ממש ממש קלה להתקנה)
השאלה איך עכשיו אני מבצע בדיקה אם המשתמש סיים להוריד עם HTACCESS
ולכל מי שאמר PHP אתם צריכים להבין הקוד הוא ב HTACCESS ללא PHP לא יכול להשתמש בPHP


כל הזמנים הם GMT +2. הזמן כעת הוא 10:35.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ