PDA

View Full Version : سوال: htaccess مشکل دارم باهاش



opluse
جمعه 03 مهر 1394, 08:05 صبح
سلام من کدهای زیر رو توی فایل htaccess نوشتم



Options +FollowSymLinks RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-d RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^(.*).html$ index.php?rout=$1


آدرس دهی خوب کار میکنه و همه چیز درسته تا وقتی آدرس به این شکل هست http://localhost/test. (http://localhost/test.php)html

اما وقتی آدرس تغیر میکنه و در واقع به این شکل میشه http://localhost/user/login.html ، آدرس رو درست میره و صفحه رو لود میکنه ولی آدرس لینکهایی که داخل صفحه index.php هم تغییر میکنه

مثلا در حالت معمولی آدرس لینک اینجوریه assets/css/style.css

ولی وقتی آدرس اینجوری میشه http://localhost/user/login.html ، لینک هم تغییر میکنه و این میشه user/assets/css/style.css و در نتیجه فایل Css لود نمیشه چون در این لینک وجود نداره

دوستان کسی راه حلی داره ؟

opluse
جمعه 03 مهر 1394, 08:12 صبح
این هم فایلهایی ک بکار بردم

H:Shojaei
شنبه 04 مهر 1394, 12:27 عصر
این رو امتحان کنید:


Options +FollowSymLinks
RewriteEngine On


RewriteCond %{REQUEST_URI} !.*\.css$ [NC]
RewriteCond %{REQUEST_URI} !.*\.js$ [NC]
RewriteCond %{REQUEST_URI} !.*\.ttf$ [NC]
RewriteCond %{REQUEST_FILENAME} !-f [NC]
RewriteCond %{REQUEST_FILENAME} !-d [NC]
RewriteCond %{REQUEST_FILENAME} !-l [NC]
RewriteRule ^(.*).html$ index.php?rout=$1

opluse
شنبه 04 مهر 1394, 23:55 عصر
ممنون آقای شجاعی

متسفانه این کد هم جوابگو نبود . فعلا با PHP یجوری راه انداختم ولی استاندارد نیست . در واقع ایرانی بازی در آوردم خخخ:لبخند::لبخند:

H:Shojaei
یک شنبه 05 مهر 1394, 11:23 صبح
من تست کردن درست بود!!!احتمالا سرویسها رو ران نکردید!

opluse
یک شنبه 05 مهر 1394, 12:52 عصر
چه سرویس هایی باید ران باشه ؟

H:Shojaei
یک شنبه 05 مهر 1394, 21:20 عصر
mode_rewrite رو باید توی apache ران کنید...

opluse
یک شنبه 05 مهر 1394, 22:11 عصر
خوب توی Httpconf این ماژول فعال هست
LoadModule rewrite_module modules/mod_rewrite.so
و توی htaccess هم RewriteEngine On

کار دیگه ای باید انجام بدم ؟

روی هاست هم بردم بازم همین وضعیت بود

H:Shojaei
یک شنبه 05 مهر 1394, 22:31 عصر
نمیدونم والا اینجاست که دوستان با تجربه تر باید بیان نظری بدن...
راستی فایلی که گذاشتید رو zip بذارید من rar به دلایلی نمیتونم باز کنم فایلهای مورد نیاز رو بذارید کنجکاو شدم چک کنم ببینم چیه مشکل...

opluse
یک شنبه 05 مهر 1394, 22:38 عصر
چشم حتما ، روی فایل زیپ براتون گذاشتم

H:Shojaei
دوشنبه 06 مهر 1394, 07:37 صبح
من تست کردم کاملا درسته فایل css هم از ایندکس هم از test.php باز میشه فایل test.php هم لود میشه...

opluse
دوشنبه 06 مهر 1394, 11:35 صبح
من تست کردم کاملا درسته فایل css هم از ایندکس هم از test.php باز میشه فایل test.php هم لود میشه...


والا برای من اینجوری :

توی صفحه index متن css رو میگیره و بزرگ میشه مثل تصویر

135534

و توی صفحه ی user/login.html متن css رو نمیگیره و معمولیه توی تصویر هم مشخصه .

135535

H:Shojaei
دوشنبه 06 مهر 1394, 12:07 عصر
خوب این که دلیل نمیشه شاید مشکل جای دیگه باشه که استایل اعمال نمیشه...!
شما تو هر صفحه که میخواید مثلا هم ایندکس هم لاگین سرس صفحه رو نگاه کنید(ctrl+u) و روی لینک فایل css کلیک کنید اگر فایل لود شد توی مرورگر و محتواش اومد یعنی مشکلی از htaccess نیست...

opluse
دوشنبه 06 مهر 1394, 12:55 عصر
خوب این که دلیل نمیشه شاید مشکل جای دیگه باشه که استایل اعمال نمیشه...!
شما تو هر صفحه که میخواید مثلا هم ایندکس هم لاگین سرس صفحه رو نگاه کنید(ctrl+u) و روی لینک فایل css کلیک کنید اگر فایل لود شد توی مرورگر و محتواش اومد یعنی مشکلی از htaccess نیست...

مشکل لود شدن آدرس css نیست ! مشکل عوض شدن آدرس css هست تصاویر رو ببینید متوجه میشید .

تصویر index

135537

تصویر login

135538

اگه راهی باشه آدرس css عوض نشه خیلی خوب میشه .

H:Shojaei
دوشنبه 06 مهر 1394, 13:32 عصر
والا واسه من که درست کار میکنه!!!

H:Shojaei
دوشنبه 06 مهر 1394, 13:55 عصر
آهان!!
خوب شما نباید فایلها رو تو این زیر شاخه ها بذارید در صورتی که واسشون تعریفی تو کدهای .htaccess و کدهای php ندارید!
درسته شما میگین فایل رو که توی user هست رو واسم بیار و میاره... ولی با htaccess ازین به بعد میگین که آدرس روت همین user هست...
راه حلش هم اینه که فایل login رو کنار این فایلهای داخل appz بگذارید یا این که کد htaccess اون رو بنویسید اگر امکانش باشه...

opluse
دوشنبه 06 مهر 1394, 16:58 عصر
ببینید مساله فقط این فایل login نیست ، خوب پروژه میره جلو بزرگ و بزرگتر میشه شاخه و زیر شاخه های بیشتری ایجاد میشه
و طبق این کدی ک در htaccess داریم هر زیر شاخه برای خودش یک روت معرفی میشه و اینجور آدرس دادن ها هیچ وقت نمیشه بصورت استاتیک گذاشت و حتما باید داینامیک و متغیر باشن .
حالا تنها راهش اینه که توی آدرس آدرس کامل رو وارد کنیم مثل http://localhost/check/assets/css/css.css یا اینکه مثل من با پی اچ پی بچرخونیمش !
کاشکی ی راهی بود توی همین htaccess درست میشد .

hsgpro
سه شنبه 07 مهر 1394, 11:08 صبح
سلام
این مشکل شما با یه خط کد ساده HTML حل میشه.
در داخل تگ head قالبتون تگ زیر رو اضافه کنید:



<base href="http://localhost/">


اگه روی هاست هم آپلود کردید به جای localhost آدرس دامنه خودتون رو بذارید.

راهنمایی بیشتر در http://www.w3schools.com/tags/tag_base.asp

opluse
سه شنبه 07 مهر 1394, 13:46 عصر
سلام
این مشکل شما با یه خط کد ساده HTML حل میشه.
در داخل تگ head قالبتون تگ زیر رو اضافه کنید:



<base href="http://localhost/">


اگه روی هاست هم آپلود کردید به جای localhost آدرس دامنه خودتون رو بذارید.

راهنمایی بیشتر در http://www.w3schools.com/tags/tag_base.asp

متشکرم دوست عزیز با راهنماییتون حل شد .

hsgpro
سه شنبه 07 مهر 1394, 15:00 عصر
مرسی واقعا یه خط کد ساده رو خوب اومدی ...
.....

خیلی ممنون از لطفتون اما قشنگ نیست اینطوری بگیم همون بعضی ها هم که میگید به صورت رایگان زحمت میکشن که مشکل بقیه رو حل کنن.

amir6268
سه شنبه 07 مهر 1394, 15:28 عصر
خیلی ممنون از لطفتون اما قشنگ نیست اینطوری بگیم همون بعضی ها هم که میگید به صورت رایگان زحمت میکشن که مشکل بقیه رو حل کنن.

منظور منم دقیقا همین بود
باید به کسانی که زحمت میکشن پاسخ میدند و کمک میکنند احترام گذاشت. حالا چه صحیح چه اشتباه ...
دقیقا کاری که شما کردی ...
ولی منظور من رو از اون بعضی ها در این تاپیک میتونی ببینی:
http://barnamenevis.org/showthread.php?508739-%DA%AF%D8%B1%D9%81%D8%AA%D9%86-%D8%B1%DA%A9%D9%88%D8%B1%D8%AF%D9%87%D8%A7%DB%8C-%DB%8C%DA%A9-%D8%AF%DB%8C%D8%AA%D8%A7%D8%A8%DB%8C%D8%B3
(http://barnamenevis.org/showthread.php?508739-%DA%AF%D8%B1%D9%81%D8%AA%D9%86-%D8%B1%DA%A9%D9%88%D8%B1%D8%AF%D9%87%D8%A7%DB%8C-%DB%8C%DA%A9-%D8%AF%DB%8C%D8%AA%D8%A7%D8%A8%DB%8C%D8%B3)-----