saman
1 ماه پیش توسط saman مطرح شد
3 پاسخ

مشکل با باز شدن سایت در هاست اشتراکی

از کد زیر برای باز شدن سایت در پوشه public_html استفاده می کنم :

 <IfModule mod_rewrite.c>
      RewriteEngine on
      RewriteCond %{REQUEST_URI} !^public
      RewriteRule ^(.*)$ public/$1 [L]
  </IfModule>

سایت به خوبی باز میشه ولی مشکل اینجاست که این دو تا آدرس قابل دسترسی هستند

http://domain.com
http://domain.com/public

در صورتی که نباید این طور باشه ، ممنون میشم راهنمایی کنید


ثبت پرسش جدید
مبین محمدی
تخصص : Wordpress developer
@mobinmodi 1 ماه پیش مطرح شد
0

برای جلوگیری از دسترسی به آدرس‌های http://domain.com و http://domain.com/public و تنها اجازه دادن به دسترسی به محتوای موجود در پوشه public_html، می‌توانید از تنظیمات .htaccess استفاده کنید. در اینجا یک روش برای انجام این کار ارائه می‌شود:

1. تنظیمات .htaccess

فایل .htaccess خود را به شکل زیر ویرایش کنید:

<IfModule mod_rewrite.c>
    RewriteEngine on

    # جلوگیری از دسترسی به پوشه public
    RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+(public)/ [NC]
    RewriteRule ^ - [F,L]

    # اگر آدرس درخواست شده به public اشاره نکند، به پوشه public هدایت کن
    RewriteCond %{REQUEST_URI} !^/public/
    RewriteRule ^(.*)$ public/$1 [L]
</IfModule>

2. توضیحات تنظیمات:

  • جلوگیری از دسترسی به پوشه public:

    • با استفاده از شرط RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+(public)/ [NC]، هر درخواستی که به پوشه public اشاره کند، مسدود می‌شود.
    • RewriteRule ^ - [F,L] به این معناست که اگر شرط بالا درست باشد، درخواست را مسدود کرده و خطای 403 (Forbidden) برمی‌گرداند.
  • هدایت درخواست‌ها به پوشه public:

    • شرط RewriteCond %{REQUEST_URI} !^/public/ بررسی می‌کند که آیا درخواست به پوشه public اشاره نمی‌کند.
    • در صورت درست بودن شرط، درخواست به پوشه public هدایت می‌شود.

3. تست تنظیمات

بعد از اعمال تغییرات، فایل .htaccess را ذخیره کرده و دوباره به سایت خود مراجعه کنید:

  • آدرس http://domain.com باید به درستی به محتوای موجود در پوشه public_html هدایت شود.
  • آدرس http://domain.com/public باید به خطای 403 (Forbidden) منتهی شود.

4. بررسی مجوزها

اگر هنوز با خطا مواجه هستید، مطمئن شوید که ماژول mod_rewrite در سرور شما فعال است. همچنین، بررسی کنید که فایل .htaccess مجوزهای لازم را دارد و سرور به آن دسترسی دارد.

5. نکات اضافی

  • در صورتی که از CMS یا فریمورک خاصی استفاده می‌کنید، ممکن است نیاز به تنظیمات اضافی داشته باشید.

آرش امینی
تخصص : فول استک وب و متلب(MATLAB)
@itsArash 1 ماه پیش مطرح شد
0

درود

دوست من بنظرم اگه یکم بیشتر توضیح بدی ممنون میشم. یعنی نمیخوای که صفحه اول سایت بالا بیاد؟


saman
تخصص : برنامه نویس
@saman798 1 ماه پیش مطرح شد
0

ببینید صفحات زیر رو داریم که به صورت یک روت معمولی در لاراول تنظیم شدند :
http://domain.com
http://domain.com/blog
http://domain.com/about-us
http://domain.com/contact-us

این صفحات به درستی باز میشن. مشکل اینجاست که با آدرس های زیر هم همین محتوا باز میشن :
http://domain.com/public/blog
http://domain.com/public/about-us
http://domain.com/public/contact-us


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام