از کد زیر برای باز شدن سایت در پوشه public_html استفاده می کنم :
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_URI} !^public
RewriteRule ^(.*)$ public/$1 [L]
</IfModule>
سایت به خوبی باز میشه ولی مشکل اینجاست که این دو تا آدرس قابل دسترسی هستند
http://domain.com
http://domain.com/public
در صورتی که نباید این طور باشه ، ممنون میشم راهنمایی کنید
برای جلوگیری از دسترسی به آدرسهای http://domain.com
و http://domain.com/public
و تنها اجازه دادن به دسترسی به محتوای موجود در پوشه public_html
، میتوانید از تنظیمات .htaccess
استفاده کنید. در اینجا یک روش برای انجام این کار ارائه میشود:
.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>
جلوگیری از دسترسی به پوشه public
:
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+(public)/ [NC]
، هر درخواستی که به پوشه public
اشاره کند، مسدود میشود. RewriteRule ^ - [F,L]
به این معناست که اگر شرط بالا درست باشد، درخواست را مسدود کرده و خطای 403 (Forbidden) برمیگرداند.هدایت درخواستها به پوشه public
:
RewriteCond %{REQUEST_URI} !^/public/
بررسی میکند که آیا درخواست به پوشه public
اشاره نمیکند.public
هدایت میشود.بعد از اعمال تغییرات، فایل .htaccess
را ذخیره کرده و دوباره به سایت خود مراجعه کنید:
http://domain.com
باید به درستی به محتوای موجود در پوشه public_html
هدایت شود.http://domain.com/public
باید به خطای 403 (Forbidden) منتهی شود.اگر هنوز با خطا مواجه هستید، مطمئن شوید که ماژول mod_rewrite
در سرور شما فعال است. همچنین، بررسی کنید که فایل .htaccess
مجوزهای لازم را دارد و سرور به آن دسترسی دارد.
درود
دوست من بنظرم اگه یکم بیشتر توضیح بدی ممنون میشم. یعنی نمیخوای که صفحه اول سایت بالا بیاد؟
ببینید صفحات زیر رو داریم که به صورت یک روت معمولی در لاراول تنظیم شدند :
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
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟