مستندات فنی

دسترسی به تمامی مستندات محصولات ابر آروان

دسته‌بندی‌های سایت مشاهده دسته‌بندی‌ها بستن دسته‌بندی‌ها

مشاهده همه دسته‌ها

درک پیکربندی پیش‌فرض فایل .Htaccess برای DreamFactory

۳ دقیقه
۵ اسفند ۹۹

نکته: ما در حال تغییر ساختار فایل و پیکربندی بسیاری از استک‌های بیتنامی هستیم. در نتیجه‌ی این تغییرات، مسیر فایل‌هایی که در این آموزش به آن‌ها اشاره شده ممکن است تغییر کند که این موضوع هم بستگی دارد که استک بیتنامی شما از پکیج‌های سیستمی نیتیو لینوکس استفاده می‌کند (رویکرد A) یا نسخه‌ای self-contained است (رویکرد B). برای تشخیص نوع استک‌تان و انتخاب رویکرد متناسب، دستور زیر را اجرا کنید:

test ! -f "/opt/bitnami/common/bin/openssl" && echo "Approach A: Using system packages." || echo "Approach B: Self-contained installation."

خروجی این دستور نشان می‌دهد که اپلیکیشن شما از کدام رویکرد (A یا B) استفاده می‌کند و به شما کمک می‌کند که در این راهنما مسیر، پیکربندی و دستورات متناسب با آن را انتخاب کنید. برای اطلاعات بیشتر راجع به این تغییرات، به بخش سوالات رایج مراجعه کنید.

یکی از اصلی‌ترین اهداف ما پیکربندی اپلیکشن‌های بیتنامی به امن‌ترین شکل ممکن است. به همین دلیل پیکربندی‌ فایل‌های .htaccess را به فایل‌های پیکربندی اصلی اپلیکیشن منتقل کرده‌ایم و گزینه‌ی AllowOverride را به صورت پیش‌فرض روی None تنظیم کرده‌ایم.

نکته: بنیاد نرم‌افزاری آپاچی این پیکربندی را نیز توصیه می‌کند. به نقل از این بنیاد: «بنا به دلایل امنیتی و عملکردی، AllowOverride را در بلوک خود تنها روی None بگذارید. در عوض بلوکی را پیدا کنید (یا بسازید) که به دایرکتوری‌ای ارجاع داشته باشد که قصد دارید فایل .htaccess را آنجا قرار دهید.»

رویکرد A: اپلیکشین‌هایی که از پکیج‌های سیستمی استفاده می‌کنند

درک فایل‌های .htaccess

محتوای فایل‌های .htaccess به فایل /opt/bitnami/apache2/conf/vhosts/htaccess/APPNAME-htaccess.conf منتقل شده است. برای مثال:

  • فایل /opt/bitnami/apache2/conf/vhosts/APPNAME-vhost.conf فایل پیکربندی اصلی اپلیکیشن است. این فایل همچنین منشأ فایل APPNAME-htaccess.conf است.
<VirtualHost 127.0.0.1:80 _default_:80>
  ServerAlias *
  DocumentRoot /opt/bitnami/APPNAME
  <Directory "/opt/bitnami/APPNAME">
    Options -Indexes +FollowSymLinks -MultiViews
    AllowOverride All
    Require all granted
  </Directory>
</VirtualHost>
Include "/opt/bitnami/apache2/conf/vhosts/htaccess/APPNAME-htaccess.conf"
  • فایل /opt/bitnami/apache2/conf/vhosts/htaccess/APPNAME-htaccess.conf حاوی تمام محتواهای مورد نیاز فایل‌های .htaccess است که اپلیکیشن به آن نیاز دارد. این فایل معمولن به شکل زیر است:
<Directory "/opt/bitnami/APPNAME/cache">
  Deny from all
</Directory>
<Directory "/opt/bitnami/APPNAME/images">
  # Protect against bug 28235
  <IfModule rewrite_module>
    RewriteEngine On
    RewriteCond %{QUERY_STRING} \.[^\\/:*?\x22<>|%]+(#|\?|$) [nocase]
    RewriteRule . - [forbidden]
  </IfModule>
</Directory>
<Directory "/opt/bitnami/APPNAME/includes">
  Deny from all
</Directory>
<Directory "/opt/bitnami/APPNAME/languages">
  Deny from all
</Directory>
<Directory "/opt/bitnami/APPNAME/maintenance">
  Deny from all
</Directory>
<Directory "/opt/bitnami/APPNAME/maintenance/archives">
  Deny from all
</Directory>
<Directory "/opt/bitnami/APPNAME/serialized">
  Deny from all
</Directory>

اضافه کردن بخشی جدید به فایل .Htaccess هنگام نصب یک پلاگین

برخی پلاگین‌ها حین نصب یک فایل .htaccess در دایرکتوری /opt/bitnami/APPNAME یا /opt/bitnami/apps/APPNAME/plugins ایجاد می‌کنند که آپاچی قادر به خواندن آن‌ها نیست. به همین دلیل توصیه می‌کنیم که محتوای این فایل‌های را به فایل /opt/bitnami/apache2/conf/vhosts/htaccess/APPNAME-htaccess.conf منتقل کنید. مراحل زیر را طی کنید:

  • مدخل جدیدی به فایل /opt/bitnami/apache2/conf/vhosts/htaccess/APPNAME-htaccess.conf اضافه کنید و در آن مسیر فایل htaccess را (/opt/bitnami/APPNAME یا /opt/bitnami/htdocs//plugins) مشخص کنید و محتوای زیر را در آن Paste کنید.
...
<Directory "/opt/bitnami/APPNAME">
CONTENT
</Directory>

نکته: به جای CONTENT محتوای فایل /opt/bitnami/APPNAME/.htaccess را قرار دهید که پلاگین ایجاد کرده است.

  • آپاچی را دوباره راه‌اندازی کنید تا تغییرات اعمال شود:
...
<Directory "/opt/bitnami/APPNAME">
CONTENT
</Directory>

رویکرد B: اپلیکیشن‌های Self-contained بیتنامی

درک فایل‌های .htaccess

محتوای فایل‌های .htaccess به فایل /opt/bitnami/apps/APPNAME/conf/htaccess.conf منتقل شده است. برای مثال:

  • فایل /opt/bitnami/apps/APPNAME/conf/httpd-app.conf فایل پیکربندی اصلی اپلیکیشن است. این فایل همچنین منشأ فایل htaccess.conf است.
<Directory "/opt/bitnami/apps/APPNAME/htdocs">
    Options +MultiViews
    AllowOverride None
    <IfVersion < 2.3 >
    Order allow,deny
    Allow from all
    </IfVersion>
    <IfVersion >= 2.3>
    Require all granted
    </IfVersion>
</Directory>
Include "/opt/bitnami/apps/APPNAME/conf/htaccess.conf"
  • فایل /opt/bitnami/apps/APPNAME/conf/htaccess.conf حاوی تمام محتواهای مورد نیاز فایل‌های .htaccess است که اپلیکیشن به آن نیاز دارد. این فایل معمولن به شکل زیر است:
<Directory /opt/bitnami/apps/APPNAME/htdocs/cache>
  Deny from all
</Directory>
<Directory /opt/bitnami/apps/APPNAME/htdocs/images>
  # Protect against bug 28235
  <IfModule rewrite_module>
    RewriteEngine On
    RewriteCond %{QUERY_STRING} \.[^\\/:*?\x22<>|%]+(#|\?|$) [nocase]
    RewriteRule . - [forbidden]
  </IfModule>
</Directory>
<Directory /opt/bitnami/apps/APPNAME/htdocs/includes>
  Deny from all
</Directory>
<Directory /opt/bitnami/apps/APPNAME/htdocs/languages>
  Deny from all
</Directory>
<Directory /opt/bitnami/apps/APPNAME/htdocs/maintenance>
  Deny from all
</Directory>
<Directory /opt/bitnami/apps/APPNAME/htdocs/maintenance/archives>
  Deny from all
</Directory>
<Directory /opt/bitnami/apps/APPNAME/htdocs/serialized>
  Deny from all
</Directory>

برای یادگیری نحوه‌ی پیکربندی فایل .htaccess این ویدیو را مشاهده کنید (در این ویدیو از وردپرس برای اپلیکیشن نمونه استفاده شده است).

اضافه کردن بخشی جدید به فایل .Htaccess هنگام نصب یک پلاگین

برخی پلاگین‌ها حین نصب یک فایل .htaccess در دایرکتوری /opt/bitnami/apps/APPNAME/htdocs یا /opt/bitnami/apps/APPNAME/htdocs//plugins ایجاد می‌کنند که آپاچی قادر به خواندن آن‌ها نیست. به همین دلیل توصیه می‌کنیم که محتوای این فایل‌های را به فایل /opt/bitnami/apps/APPNAME/conf/htaccess.conf منتقل کنید. مراحل زیر را طی کنید:

  • مدخل جدیدی به فایل /opt/bitnami/apps/APPNAME/conf/htaccess.conf اضافه کنید و در آن مسیر فایل htaccess را (/opt/bitnami/apps/APPNAME/htdocs یا /opt/bitnami/apps/APPNAME/htdocs//plugins) مشخص کنید و محتوای زیر را در آن Paste کنید.
...
<Directory "/opt/bitnami/apps/APPNAME/htdocs/">
CONTENT
</Directory>

نکته: به جای CONTENT محتوای فایل /opt/bitnami/apps/APPNAME/htdocs/.htaccess را قرار دهید که پلاگین ایجاد کرده است.

  • آپاچی را دوباره راه‌اندازی کنید تا تغییرات اعمال شود:
sudo /opt/bitnami/ctlscript.sh restart apache