PDA

View Full Version : سوال: توی ریرایت مد کدوم یکی از این دو کد از نظر دستوری درسته؟



idocsidocs
شنبه 27 اسفند 1390, 00:40 صبح
کد یک:



RewriteCond %{REQUEST_URI} !^images/
RewriteRule ^([a-zA-Z0-9\._\-]+)/([a-zA-Z0-9\._\-]+)$ index.php?controller=$1&action=$2 [NC,L]

RewriteCond %{REQUEST_URI} !^images/
RewriteRule ^([a-zA-Z0-9\._\-]+)/([a-zA-Z0-9\._\-]+)/([a-zA-Z0-9\._\-]+)$ index.php?controller=$1&action=$2&param1=$3 [NC,L]



کد دو:



RewriteCond %{REQUEST_URI} !^images/
RewriteRule ^([a-zA-Z0-9\._\-]+)/([a-zA-Z0-9\._\-]+)$ index.php?controller=$1&action=$2 [NC,L]
RewriteRule ^([a-zA-Z0-9\._\-]+)/([a-zA-Z0-9\._\-]+)/([a-zA-Z0-9\._\-]+)$ index.php?controller=$1&action=$2&param1=$3 [NC,L]

MMSHFE
شنبه 27 اسفند 1390, 10:26 صبح
فکر میکنم دومی درست باشه چون شرط هر دو عبارت یکی هست و طبیعتاً یکبار شرط رو مینویسیم و اگه شرط برقرار بود، Rule اول بررسی میشه و اگه صحیح بود، بخاطر L دیگه دومی پردازش نمیشه و اگه نبود، دومی اجرا میشه. موفق باشید.

idocsidocs
شنبه 27 اسفند 1390, 11:20 صبح
فکر میکنم دومی درست باشه چون شرط هر دو عبارت یکی هست و طبیعتاً یکبار شرط رو مینویسیم و اگه شرط برقرار بود، Rule اول بررسی میشه و اگه صحیح بود، بخاطر L دیگه دومی پردازش نمیشه و اگه نبود، دومی اجرا میشه. موفق باشید.

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

ولی اگر دستور رو به صورت زیر بنویسم کد ها ارور می دن. یعنی اگر Rule دوم رو حذف کنم بدون مشکل اجرا می شن.

RewriteCond %{REQUEST_URI} !^images/
RewriteRule ^([a-zA-Z0-9\._\-]+)/([a-zA-Z0-9\._\-]+)$ index.php?controller=$1&action=$2 [NC,L]