در تاپیک قبلی بیتاک، نحوه نصب اسکریپت Perfex CRM - Customers Relationship & Project Management را به شما آموزش دادیم. یکی از خطاهای رایج پس از نصب این اسکریپت، خطای 404 Not Found یا خطای 500 Server در صفحات داخلی این اسکریپت است که مانع دسترسی به صفحات داخلی مانند برگه ها، صفحات ورود و عضویت و … می شود. در این تاپیک قصد داریم نحوه حل این ارور و مشکل را به شما آموزش دهیم.

دلیل اصلی این مشکل، عدم وجود فایل .htaccess
یا خالی بودن این فایل و عدم وجود دستورات لازم داخل این فایل می باشد.
فایل .htaccess
حاوی دستوراتی است که می تواند بر روی تمامی بخش های یک سایت اثر بگذارد. یکی از تأثیرات آن، اصلاح آدرس ها و ساختار سایت است و بجای اینکه کاربر بخواهد یک صفحه را با آدرس طولانی مشاهده کند، این فایل می تواند با دستورات داخل خود آدرس صفحات را به صورت کوتاه و خلاصه تبدیل کند. همچنین یکی دیگر از کاربردهایی که در این زمینه دارد، تبدیل فایل های php در آدرس به آدرس های متفاوت است. برای مثال این فایل می تواند آدرس هایی مجازی تولید کند که پوشه ی آن داخل فایل منیجر موجود نیست اما می تواند محتویات یک آدرس را از طریق فایل های متفاوتی دریافت کند. بنابراین کامل بودن دستورات این فایل اجباری است و نقص در این فایل باعث بروز خطاها و عدم باز شدن صفحات داخلی سایت می شود.
توجه: در صورتی که اقدامات زیر را انجام دادید و به نتیجه ای نرسیدید، حتما طی یک تیکت از هاستینگ خود بخواهید که ماژول mod_rewrite
در هاستتان را بررسی کنند و آن را فعال کنند.
وارد فایل منیجر و روت سایت شوید، تیک گزینه Show hidden files را از قسمت تنظیمات فایل منیجر بزنید تا فایل .htaccess
نمایش داده شود. در صورتی که چنین فایلی نداشتید، یک فایل با همین نام ایجاد کرده و دستورات زیر را داخل آن قرار دهید و اگر چنین فایلی دارید و دستورات داخل آن خالی است، دستورات زیر را به این فایل اضافه کنید و سپس ذخیره نمایید.
نصب روی ساب دایرکتوری
اگر اسکریپت را در یک سابدایرکتوری در کنار یک اسکریپت دیگر مانند وردپرس یا جوملا یا … نصب کرده باشید، احتمالا یکی از علت های بروز این مشکل به دلیل تداخل فایل های htaccess می باشد. در این حالت شما باید دستورات داخل پوشه اسکریپت را اصلاح نمایید:
RewriteEngine on
RewriteBase /foldername/
RewriteCond $1 !^(index\.php|resources|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L,QSA]
AddDefaultCharset utf-8
و بجای foldername
نام پوشه ای که اسکریپت داخل آن وجود دارد را جایگزین کنید.
نصب روی سابدامین یا دامین اصلی
اگر اسکریپت را روی یک سابدامین یا روت دامین اصلی نصب کرده اید، دستورات فایل .htaccess
را به این صورت باید وارد کنید:
RewriteEngine on
RewriteBase /
RewriteCond $1 !^(index\.php|resources|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L,QSA]
AddDefaultCharset utf-8
اگر خطای 500 دریافت می کنید
در صورتی که در صفحات خود خطای 500 دریافت می کنید، این احتمال به دو دلیل است:
- منابع هاست شما کافی نیست یا مشکلات کدنویسی داخل اسکریپت رخ داده است که باید فایل
error_log
فایل منیجر را بررسی کنید.
- دستورات فایل
.htaccess
را به این صورت تغییر دهید:
RewriteEngine on
RewriteCond $1 !^(index\.php|resources|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ subfolder/index.php?/$1 [L,QSA]
AddDefaultCharset utf-8
برچسب ها: #perfex #perfex_crm #پرفکس