2016-06-26 15 views
9

में सभी अनुरोधों को सार्वजनिक/फ़ोल्डर में रीडायरेक्ट कैसे करते हैं मेरे पास क्लासिक लेयरवेल 5 प्रोजेक्ट स्ट्रक्चर है और मुझे सभी अनुरोधों को public/ पर रीडायरेक्ट करने की आवश्यकता है।लार्वेल 5

मैं क्लासिक होस्टिंग वातावरण पर हूं इसलिए public/ मेरे दस्तावेज़ रूट का सबफ़ोल्डर है।

मुझे कल्पना होगी कि यह .htaccess के माध्यम से किया जा सकता है लेकिन मुझे अभी भी यह पता लगाने की आवश्यकता है कि कैसे। कोई भी मदद कर सकता है?

धन्यवाद

+0

[टैग: .htaccess], [टैग: लार्वेल] और सार्वजनिक के लिए खोज: http://stackoverflow.com/search?q=%5B.htaccess%5D+%5Blaravel%5D+public –

+0

बेहतर होस्टिंग प्राप्त करें। उपलब्ध गैर-सार्वजनिक फाइलें एक संभावित सुरक्षा छेद है। – ceejayoz

उत्तर

12

दो समाधान हैं:

1. mod_rewrite के साथ .htaccess का उपयोग

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

2. आप नीचे दिए गए कोड के साथ एक index.php फ़ाइल में जोड़ सकते हैं और इसे अपने रूट लैरवेल फ़ोल्डर (public_html फ़ोल्डर) के नीचे रखें।

<?php 
header('Location: public/'); 
1

यह another answer से एक उद्धरण जो भी आपको मदद मिल सकती है।

-

  • अपने public_html/.htaccesspublic सबफ़ोल्डर के लिए सभी अनुरोधों पुनर्निर्देशित करने के लिए संशोधित करें।

    # public_html/.htaccess 
    
    <IfModule mod_rewrite.c> 
        <IfModule mod_negotiation.c> 
         Options -MultiViews 
        </IfModule> 
    
        RewriteEngine On 
    
        # Redirect All Requests To The Subfolder 
        RewriteRule^/public 
    
    </IfModule> 
    
  • सुनिश्चित करें कि आप उचित public_html/public/.htaccess (GitHub) किया है।

    # public_html/public/.htaccess 
    
    <IfModule mod_rewrite.c> 
        <IfModule mod_negotiation.c> 
         Options -MultiViews 
        </IfModule> 
    
        RewriteEngine On 
    
        # Redirect Trailing Slashes If Not A Folder... 
        RewriteCond %{REQUEST_FILENAME} !-d 
        RewriteRule ^(.*)/$ /$1 [L,R=301] 
    
        # Handle Front Controller... 
        RewriteCond %{REQUEST_FILENAME} !-d 
        RewriteCond %{REQUEST_FILENAME} !-f 
        RewriteRule^index.php [L] 
    
        # Handle Authorization Header 
        RewriteCond %{HTTP:Authorization} 
        RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] 
    </IfModule> 
    
0

आदर्श परिदृश्य /home/user/public/home/user/laravel/public से एक सिमलिंक के रूप में है।

संबंधित मुद्दे