PDA

View Full Version : سوال: عبارتهای زیر که توی فایل htaccess به کار می رن به چه معنی هستن؟



phpweb
دوشنبه 20 دی 1389, 16:29 عصر
عبارتهای
-d -
-l -
-s-
REQUEST_FILENAME-
% -
[L]که در کد زیر استفاده شدن به چه معنی هستن؟


RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]

eshpilen
دوشنبه 20 دی 1389, 22:34 عصر
ظاهرا -d بررسی میکنه که رشته ای که قبلش اومده آدرس یک دایرکتوری (فولدر) که روی سیستم وجود داره هست یا خیر.
-l هم همین کار رو میکنه اما با این فرق که هدفش باید یک symbolic link (تقریبا معادل همون فایلهای شورتکات ویندوزی، در لینوکس) باشه.
REQUEST_FILENAME هم آدرس مطلق فایلی هست که درخواست وارد شده به سرور نهایتا به اون میرسه.
% برای استفاده از متغییرهای محیطی هست (که داخل آکولاد نوشته میشن ظاهرا!!)
دربارهء آخری هم اینطور نوشته:

'last|L' (last rule)
Stop the rewriting process here and don't apply any more rewrite rules. This corresponds to the Perl last command or the break command in C. Use this flag to prevent the currently rewritten URL from being rewritten further by following rules. For example, use it to rewrite the root-path URL ('/') to a real one, e.g., '/e/www/'.


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

منبع این توضیحات هم این بود: http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html

phpweb
دوشنبه 20 دی 1389, 23:51 عصر
ظاهرا -d بررسی میکنه که رشته ای که قبلش اومده آدرس یک دایرکتوری (فولدر) که روی سیستم وجود داره هست یا خیر.
-l هم همین کار رو میکنه اما با این فرق که هدفش باید یک symbolic link (تقریبا معادل همون فایلهای شورتکات ویندوزی، در لینوکس) باشه.
REQUEST_FILENAME هم آدرس مطلق فایلی هست که درخواست وارد شده به سرور نهایتا به اون میرسه.
% برای استفاده از متغییرهای محیطی هست (که داخل آکولاد نوشته میشن ظاهرا!!)
دربارهء آخری هم اینطور نوشته:


'last|L' (last rule)
Stop the rewriting process here and don't apply any more rewrite rules. This corresponds to the Perl last command or the break command in C. Use this flag to prevent the currently rewritten URL from being rewritten further by following rules. For example, use it to rewrite the root-path URL ('/') to a real one, e.g., '/e/www/'.



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

منبع این توضیحات هم این بود: http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html

ممنون از راهنماییتون

خوشحال می شم اگه سایر دوستان هم نظر بدن.