PDA

View Full Version : حرفه ای: آدرس دهی فایل بعد از ReWrite URL



2undercover
یک شنبه 22 بهمن 1391, 15:18 عصر
با سلام و خسته نباشید...

من از این کد برای باز نویسی URL ها استفاده کردم که کاری می کنه وقتی کاربری وارد آدرس
localhost/login/
شد صفحه ی localhost/login.php
براش باز بشه خوب تا اینجا که مشکلی نیست!

مشکل وقتی پیدا میشه که مثلا اگر واقعا بخوای وارد پوشه login/ بشی باید آدرس رو اینجوری تایپ کنی: localhost/login/ ولی با توجه به کدی که من نوشتم برای کاربر فایل login.php رو باز می کنه!!!

اینم کدی که من استفاده می کنم(البته دو خط اولش برای اینه که ته آدرس یک Slash اضافه کنه!):
Options +FollowSymlinks
RewriteCond %{REQUEST_URI} /+[^\.]+$
RewriteRule ^(.+[^/])$ %{REQUEST_URI}/ [R=301,L]
RewriteEngine on
RewriteRule ^(.*)(\/{1})$ $1.php [nc]

خوب به نظرتون چه راه حلی داره این مشکل؟!

2undercover
دوشنبه 23 بهمن 1391, 14:05 عصر
اولا تاپیک بیا بالا!
دوما یعنی واقعا ایده ای نبود دوستان که این همه مقاله در باره استفاده از .htaccess نوشتین چی شد پس؟!

plague
سه شنبه 24 بهمن 1391, 00:05 صبح
راه حلش اینه که یه نماد دیگه برای دایرکتوری تعریف کنی !
شما اومدی شبیه کوئری استرینگ mvc درآوردی
یا باید یه کاراکتر دیگه برای دایکتوری مشخص کنی
یا همون کار اولت رو تغییر بدی , یعنی صفحاتی که میخای فراخانی کنی اولشون یچیز مشخص بزار مثلا xxx که htaccess بدونه این یه صفحست داره فراخانی میشه بعد

RewriteRule ^(.*)(\/{1})$ $1.php [nc]
رو تبدیل کن به

RewriteRule xxx(.*)(\/{1})$ $1.php [nc]

اینجوری دیگه دایرکتوری ها که xxx ندارن اولشون رو قاطی نمیکنه با صفحه

البته من مطمئن نیستم چون نه دانش چندانی در این ضمینه دارم نه تحقیق کردم راجبش ! ولی تو mvc هم فکر میکنم همه چیز از index فراخانی میشه برای همین این مشکل پیش نمیاد
یعنی بجای اون xxx یدونه Index هست اول همه آدرس صفحات که کار همونو انجام میده و مشخص میکنه آدرس فراخونده شده یه صفحست