رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
مشکل این کد htaccess چیه؟
#1
سلام.
مشکل این کد Htaccess زیر چیه که توی localhost کار نمیکنه؟ همونطور که میبنید از 3 بخش تشکیل شده، بخش اول ریدایرکت www به بدون www با فرم کلی(بدون نیاز به وارد کردن نام دامنه خاصی) هستش.
مورد دوم هم فقط allow کردن دسترسی به چند IP خاص هستش، که IP لوکال هاست رو هم توی ip آخری وارد کردم.
مورد سوم هم که فکر میکنم کارش اینه که نیاز نباشه توی هم فولدر ها یک index.php خالی بنویسیم که جلوی list شدن فایل های اون دایرکتوری رو بگیره. (اگر کار این کد آخر اینی که فکر میکنم نیست هم بگید چون مطمئن نیستم)

بعد جالبیش اینه که هیچ کدوم هم از کدها حتی به تنهایی هم کار نمیکنه، و انگار هر 3 مشکل دارن! یعنی مثلا فقط مورد اول رو گذاشتم(ریداریکت www) یا فقط مورد دوم با اول، ولی بازم کار نمیکنه!


//Rewrite to www
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^www.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]

//Block users by IP
order allow,deny
deny from 
allow from 190.190.190.190
allow from 180.180.180.180
allow from 127.0.0.1

//Prevent directory listings
Options All -Indexes
 

پاسخ
تشکر شده توسط:
#2
بخش اول که کلا نباید بگذارین چون http://www.localhost نداریم.

بخش دوم رو هم بردارین چون توی localhost فقط درخواستهای 127.0.0.1 جواب داده میشه.

بخش سوم هم به این صورت بنویسید:
Options -Indexes

چک کنید توی تنظیمات آپاچی AllowOverride روی All باشه نه None
پاسخ
تشکر شده توسط: php
#3
ممنون. درست شد.
یک سوال دیگه در همین رابطه که آیا mod_rewrite به صورت پیش فرض در localhost فعاله و میشه ازش در htaccess استفاده کرد یا باید اول فعال بشه؟
پاسخ
تشکر شده توسط:
#4
توی ویندوز و با کمک XAMPP و WAMP معمولاً فعاله ولی توی لینوکس بطور پیشفرض معمولاً فعال نیست و برای فعال کردنش باید دستورات زیر رو اجرا کنید:
sudo a2enmod rewrite
sudo service apache2 restart
# or
sudo service httpd restart

توی بعضی سیستمها، بجای apache2 سرویس httpd نصب میشه. بخصوص اگه پکیج LAMP رو نصب نکنید و Apache و... رو جداگانه نصب کرده باشین. دراینصورت باید از دستور دوم برای راه اندازی مجدد Apache استفاده کنید. اگه با این اوصاف باز هم Rewrite کار نکرد، باید دنبال فایل تنظیمات Apache (بسته به توزیع لینوکس خودتون و نسخه ای از وب سرور که نصب کردین) بگردین و داخلش هرچی AllowOverride None دیدین به AllowOverride All تغییر بدین و فایل رو ذخیره کرده و دوباره آپاچی رو راه اندازی کنید. برای ویرایش فایل هم باید با کاربر root وارد بشین.
پاسخ
تشکر شده توسط: php




کاربران در حال بازدید این موضوع: 1 مهمان