PDA

View Full Version : حرفه ای: مشکل در ریرایت مد و فایل htaccess



idocsidocs
چهارشنبه 24 اسفند 1390, 17:40 عصر
کدهای مربوط به ریرایت مد به شکل زیر هستن:

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

این کدها باعث می شن درخواستهایی به آدرس زیر هم به اسکریپت index.php بشن و نتونم تصاویر رو توی سایت نمایش بدم. لطفا بگید چیکار کنم که اگر آدرس با images شروع بشه، hrtaccess اون رو به فایل index.php نفرسته؟


http://site.com/images/img.png

dousti_design
چهارشنبه 24 اسفند 1390, 17:45 عصر
htaccess rewritecond
آموزشش زیاده سرچ کنید

idocsidocs
چهارشنبه 24 اسفند 1390, 18:21 عصر
آموزشش زیاده سرچ کنید
اگه دقت کنید می بیند که کار با ریرایت مد رو بلدم و نیاز به آموزش ندارم !

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

alismith
چهارشنبه 24 اسفند 1390, 18:47 عصر
سلام

تو regular expression میشد بعضی از عبارت ها رو که نمیخایم باشه رو در pattern مشخص کنیم

به این شکل : [^text]

شاید این رو به pattern اضافه کنید، به directory مورد نظر کاری نداشته باشه!


موفق باشید

idocsidocs
چهارشنبه 24 اسفند 1390, 19:03 عصر
تو regular expression میشد بعضی از عبارت ها رو که نمیخایم باشه رو در pattern مشخص کنیم

به این شکل : [^text]
یبار استفاده کردم ولی فکر کنم سینتکس رو رعایت نکردم و جواب نگرفتم. امکانش هست نکته ای که گفتید رو توی خط زیر پیاده کنید؟

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

alismith
چهارشنبه 24 اسفند 1390, 19:27 عصر
اینو امتحان کن دوست عزیز، من خودم تست نکردم


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

idocsidocs
چهارشنبه 24 اسفند 1390, 20:14 عصر
RewriteRule ^([a-zA-Z0-9\._\-]*?[^images])/([a-zA-Z0-9\._\-]+)$ index.php?controller=$1&action=$2 [NC,L]
البته images باید در ابتدا باشه. عبارت [a-zA-Z0-9\._\-] همواره باید موجود باشه ولی images می تونه توی لینک موجود باشه یا نباشه.
بنظرم کد نیاز به اصلاح داره.

MMSHFE
چهارشنبه 24 اسفند 1390, 20:19 عصر
RewriteCond %{REQUEST_URI} !\.(css|pdf|gif|ico|jpg|js|png|swf|pdf|txt|php)$
RewriteRule ^([a-zA-Z0-9\._\-]+)/([a-zA-Z0-9\._\-]+)$ index.php?controller=$1&action=$2 [NC,L]

امیدوارم با این کد مشکل رفع بشه.

alismith
چهارشنبه 24 اسفند 1390, 20:30 عصر
فکر کنم اینطوری هم بشه :


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



موفق باشید

dousti_design
چهارشنبه 24 اسفند 1390, 20:39 عصر
اگه دقت کنید می بیند که کار با ریرایت مد رو بلدم و نیاز به آموزش ندارم !
rewritecond برای گذاشتن شرط هستش. یعنی if
شما هم یه if لازم داشتید که اگه پوشه image نبود rewriterule رو اجرا کنید که دوستان قرار دادند

dousti_design
چهارشنبه 24 اسفند 1390, 20:47 عصر
اگه دقت کنید می بیند که کار با ریرایت مد رو بلدم و نیاز به آموزش ندارم !
rewritecond برای گذاشتن شرط هستش. یعنی if
شما هم یه if لازم داشتید که اگه پوشه image نبود rewriterule رو اجرا کنید که دوستان قرار دادند

idocsidocs
چهارشنبه 24 اسفند 1390, 21:57 عصر
rewritecond برای گذاشتن شرط هستش. یعنی if
شما هم یه if لازم داشتید که اگه پوشه image نبود rewriterule رو اجرا کنید که دوستان قرار دادند می شه به این صورت هم بنویسم؟ یعنی این کد از نظر سینتکس درست هست؟


RewriteRule ^(.*)(/?)index\.php$ /$1 [R=301,L]
RewriteCond %{REQUEST_URI} !^image/
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&form=$3 [NC,L]