کانفیگ سرور - بهینه سرور

بهینه سرور

به وبسایت بهینه سرور | آموزش کانفیگ سرور و مدیریت سرور های لینوکسی، ویندوزی | خوش آمدید.
خانه / آموزش ها / X OS / آموزش فعال کردن mod_rewrite در آپاچی

آموزش فعال کردن mod_rewrite در آپاچی

معمولا سوال اینجاست ! چطور می توان نصب یا فعال بودن مد rewrite را چک کرد. در ابتدا چک میکنید
که آیا این این مد نصب شده در مرحله دوم برسی میکنی که ایا این مد در اپاچی لود شده است و در
مرحله سوم تنظیم بودن فایل کانفیگ اپاچی را برای استفاده از فایل htaccess از دایرکتوری برسی میکنید.

برای شروع دستور زیر را وارد کنید :

httpd -V

خروجی این دستور بصورت زیر است :

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”

دو خطی که در متن بالا مورد نظر ماست ترکیب ان مربوط به ادرس فایل کانفیگ اپاچی است :

/conf/httpd.conf

و

/etc/httpd

که میشود :

/etc/httpd/conf/httpd.conf

مد های اپاچی نیز در ادرس دایرکتوری زیر قرار دارد :

/etc/httpd/modules

خب ! در قدم اول چک میکنیم مد rewrite نصب شده است یا خیر :

ls /etc/httpd/modules | grep mod_rewrite

خروجی این دستور بصورت زیر است :

[root@server ~]# ls /etc/httpd/modules | grep mod_rewrite
mod_rewrite.so

این خروجی به این معناست که مد مورد نظر ما نصب شده است ( معمولا این مد همراه اپاچی نصب میشود ) در غیر این
صورت باید به همراه اپاچی نصب و کامپایل شود.

در این مرحله چک میکنیم که ایا مد rewrite در فایل کانفیگ اپاچی لود شده یا خیر :

grep -i LoadModule /etc/httpd/conf/httpd.conf | grep rewrite

در صورتی که خروجی بصورت زیر بود :

[root@server ~]# grep -i LoadModule /etc/httpd/conf/httpd.conf | grep rewrite
LoadModule rewrite_module modules/mod_rewrite.so

این بدین معناست که مد ما در فایل کانفیگ اپاچی لود شده اما در صورتی که در ابتدای خروجی علامت # را مشاهده کردید:

#LoadModule rewrite_module modules/mod_rewrite.so

فایل کانفیگ اپاچی را با استفاده از ادیتور متنی باز کرده و علامت # را از جلوی این بردارید.
(ادرس فایل کانفیگ در ابتدا توضیح داده شده)

حالا از نصب و لود شدن این مد مطمئن شدیم. مرحله بعدی تنظیم دایرکتوری برای استفاده فایل htaccess از
مد rewrite است. برای این منظور در ابتدا وضعیت کانفیگ این مد را در فایل کانفیگ چک میکنیم.

برای این منظور دستور زیر را وارد میکنیم :

grep -i AllowOverride /etc/httpd/conf/httpd.conf

خروجی بصورت زیر است :

[root@static ~]# grep -i AllowOverride /etc/httpd/conf/httpd.conf
AllowOverride None
AllowOverride None

در این مرحله فایل کانفیگ اپاچی را باز کنید و خطی که AllowOverride را در ان مشاهده میکنید None را پاک کرده
و به جای ان All را اضافه نمایید مانند زیر :

DocumentRoot “/var/www/html”Options SymLinksIfOwnerMatch
AllowOverride None
<Directory “/var/www/html”>
Options Indexes SymLinksIfOwnerMatch
AllowOverride None
Order allow,deny
Allow from all

را به شکل زیر تغییر دهید :

DocumentRoot “/var/www/html”Options SymLinksIfOwnerMatch
AllowOverride All
<Directory “/var/www/html”>
Options Indexes SymLinksIfOwnerMatch
AllowOverride All
Order allow,deny
Allow from all

ممکن است تعداد این بلوک ها در فایل کانفیگ اپاچی شما 1 عدد یا 4 عدد باشد شما هر بلوکی که
میخواهید در ان دایرکتوری مد rewrite فعال باشد را AllowOverride All کنید.

میتوانید با کپی و پیست کردن بلاک و تعویض ادرس دایرکتوری مورد نظر خود نیز تغیرات مورد نظرتان را اعمال کنید.

خب شما با موفقیت مد rewrite را فعال کردید. حالا با ریست کردن اپاچی از این مد استفاده کنید.