آموزش فعال کردن mod_rewrite در آپاچی
اموزش زیر برای وب سرور اپاچی نسخه 2.2 و 2.4 میتواند استفاده شود. باید توجه داشته باشید در صورتی که از کنترل پنل هایی مانند دایرکت ادمین، سی پنل و … استفاده میکنید ماژول rewrite بصورت پیشفرض فعال بوده و نیازی به فعال سازی نخواهد داشت. جهت فعال سازی ماژول rewrite معمولا سوال اینجاست ! چطور می توان فعال بودن ماژول rewrite را بررسی کرد. در ابتدا فعال بودن این ماژول را بررسی نمایید و در مرحله دوم بررسی نمایید که ماژول در وب سرور اپاچی لود شده است سپس در مرحله سوم تنظیم بودن وب سرور اپاچی برای استفاده از فایل htaccess برسی میکنید.
برای شروع دستور زیر را وارد کنید :
1 |
httpd -V |
خروجی این دستور بصورت زیر است :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
Server version: Apache/2.2.15 (Unix) Server built: Nov 15 2012 15:52:50 Server's Module Magic Number: 20051115:24 Server loaded: APR 1.3.9, APR-Util 1.3.9 Compiled using: APR 1.3.9, APR-Util 1.3.9 Architecture: 64-bit Server MPM: Prefork threaded: no forked: yes (variable process count) Server compiled with.... -D APACHE_MPM_DIR="server/mpm/prefork" -D APR_HAS_SENDFILE -D APR_HAS_MMAP -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled) -D APR_USE_SYSVSEM_SERIALIZE -D APR_USE_PTHREAD_SERIALIZE -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT -D APR_HAS_OTHER_CHILD -D AP_HAVE_RELIABLE_PIPED_LOGS -D DYNAMIC_MODULE_LIMIT=128 -D HTTPD_ROOT="/etc/httpd" -D SUEXEC_BIN="/usr/sbin/suexec" -D DEFAULT_PIDLOG="run/httpd.pid" -D DEFAULT_SCOREBOARD="logs/apache_runtime_status" -D DEFAULT_LOCKFILE="logs/accept.lock" -D DEFAULT_ERRORLOG="logs/error_log" -D AP_TYPES_CONFIG_FILE="conf/mime.types" -D SERVER_CONFIG_FILE="conf/httpd.conf" |
دو خطی که در متن بالا مورد نظر ماست ترکیب ان مربوط به ادرس فایل کانفیگ وب سرور اپاچی است :
1 |
/conf/httpd.conf |
و
1 |
/etc/httpd |
که میشود :
1 |
/etc/httpd/conf/httpd.conf |
ماژول های اپاچی نیز در ادرس دایرکتوری زیر قرار دارد :
1 |
/etc/httpd/modules |
خب ! در قدم اول چک میکنیم ماژول rewrite نصب شده است یا خیر :
1 |
ls /etc/httpd/modules | grep mod_rewrite |
خروجی این دستور بصورت زیر است :
1 2 |
[root@server ~]# ls /etc/httpd/modules | grep mod_rewrite mod_rewrite.so |
این خروجی به این معناست که مد مورد نظر ما نصب شده است ( معمولا این مد همراه اپاچی نصب میشود ) در غیر این
صورت باید به همراه اپاچی نصب و کامپایل شود.
در این مرحله چک میکنیم که ایا ماژول rewrite در فایل کانفیگ اپاچی لود شده یا خیر :
1 |
grep -i LoadModule /etc/httpd/conf/httpd.conf | grep rewrite |
در صورتی که خروجی بصورت زیر بود :
1 2 3 |
[root@server ~]# grep -i LoadModule /etc/httpd/conf/httpd.conf | grep rewrite LoadModule rewrite_module modules/mod_rewrite.so |
این بدین معناست که ماژول مورد نظر ما در فایل کانفیگ اپاچی لود شده اما در صورتی که در ابتدای خروجی علامت # را مشاهده کردید:
1 |
#LoadModule rewrite_module modules/mod_rewrite.so |
فایل کانفیگ وب سرور اپاچی را با استفاده از ادیتور متنی باز کرده و علامت # را از جلوی این بردارید. (خط را با حذف # از حالت کامنت خارج نمایید. ادرس فایل کانفیگ در ابتدا توضیح داده شد است)
حالا از نصب و لود شدن این ماژول مطمئن شدیم. مرحله بعدی تنظیم دایرکتوری برای استفاده فایل htaccess از ماژول rewrite است. در ابتدا وضعیت ماژول rewrite را در فایل کانفیگ چک میکنیم.
برای این منظور دستور زیر را وارد میکنیم :
1 |
grep -i AllowOverride /etc/httpd/conf/httpd.conf |
خروجی بصورت زیر است :
1 2 3 |
[root@static ~]# grep -i AllowOverride /etc/httpd/conf/httpd.conf AllowOverride None AllowOverride None |
در این مرحله فایل کانفیگ اپاچی را باز کنید و خطی که AllowOverride را در ان مشاهده میکنید None را پاک کرده
و به جای ان All را اضافه نمایید مانند زیر :
1 2 3 4 5 6 7 8 9 10 11 12 |
DocumentRoot "/var/www/html" <Directory /> Options SymLinksIfOwnerMatch AllowOverride None </Directory> <Directory "/var/www/html"> Options Indexes SymLinksIfOwnerMatch AllowOverride None Order allow,deny Allow from all </Directory> |
را به شکل زیر تغییر دهید :
1 2 3 4 5 6 7 8 9 10 11 12 |
DocumentRoot "/var/www/html" <Directory /> Options SymLinksIfOwnerMatch AllowOverride All </Directory> <Directory "/var/www/html"> Options Indexes SymLinksIfOwnerMatch AllowOverride All Order allow,deny Allow from all </Directory> |
ممکن است تعداد این بلوک ها در فایل کانفیگ اپاچی شما 1 عدد یا 4 عدد باشد شما هر بلاکی که میخواهید در ان دایرکتوری ماژول rewrite فعال باشد را AllowOverride All کنید.
میتوانید با کپی و پیست کردن بلاک و تعویض ادرس دایرکتوری مورد نظر نیز تغیرات مورد نظرتان را اعمال کنید.
خب شما با موفقیت مد rewrite را فعال کردید، حالا با ریست سرویس وب سرور اپاچی این ماژول در وب سرور لود شده و قابل استفاده خواهد شد.
میتوانید از طریق واتس اپ با ما در ارتباط باشید.
موفق باشید
دیدگاه ها
3 دیدگاه
سلام
میشه بحث رو هدف دار دنبال کنید
مثلا
یک سرور بگیریم
سیپنل نصب کنیم یا دایرکت
تنظیمات اولیه+پارتیشن بندی
تنظیماتی که باید حتما اعمال شوند
معرفی بخش ها
تنظیمات امنیتی
دقیقا کدام قسمت ها به تنظیمات امنیتی نیاز دارند و چرا؟
حساس ترین تنظیمات امنیتی مربوط به کدام قسمت است…و….
دم شما گرم
سلام;
قرار دادن اموزش کلی که در بر گیرنده همه این موضوعات باشه نیاز به وقت بسیار داره، هرچند من سعی میکنم اموزش ها جامع تر و مفید تر باشه.
انشالا در اینده نزدیک اموزش های این چنینی بصورت تصویری قرار خواهد گرفت.
با تشکر از توجه و انتقاد شما
پس از نصب apache فایک کانفیگ httpd.conf ایجاد خواهد شد. این فایل نباید بصورت دستی ساخته شود. با کامند زیر میتوانید فایل مورد نظر را پیدا کنید.
find /etc -name “*httpd.conf”
موفق باشید.
ارسال دیدگاه