2015-07-15 5 views
10

मैं लार्वेल के लिए नया हूं। मैं उबंटू 15.04 का उपयोग कर रहा हूं। मैंने $ sudo apt-get install lamp-server^ कमांड का उपयोग करके संगीतकार और लैंप सर्वर का उपयोग करके लैरवेल फ्रेमवर्क संस्करण 5.1.7 (एलटीएस) स्थापित किया (मैंने होमस्टेड इंस्टॉल नहीं किया था)। मैं आईडीई के रूप में PhpStorm 8.0.3 का उपयोग कर रहा हूं।लार्वेल 5 केवल रूट रूट काम करता है

मैंने तीन मार्ग और नियंत्रक बनाए। PagesController.php फ़ाइल इस तरह दिखता है:

class PagesController extends Controller 
{ 
    public function index() 
    { 
     return 'Welcome to my homepage!'; 
    } 

    public function about() 
    { 
     return 'Learn a little about me.'; 
    } 

    public function hello() 
    { 
     return 'Hello World!'; 
    } 
} 

और routes.php इस तरह दिखता है:

Route::get('/', '[email protected]'); 

Route::get('about', '[email protected]'); 

Route::get('hello', '[email protected]'); 

जब भी मैं http://localhost:63342/my-first-app/public/ (या http://localhost:63342/my-first-app/public/index.php) करने के लिए जाना यह ठीक काम करता है और मुझे Welcome to my homepage! संदेश दिखाता है। लेकिन जब भी मैं http://localhost:63342/my-first-app/public/hello या http://localhost:63342/my-first-app/public/about पर जाता हूं, तो मुझे 404 Not Found संदेश मिलता है।

इसके अलावा, .htaccess फ़ाइल जो my-first-app/public पर स्थित है इस तरह दिखता है:

<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] 
</IfModule> 

मैं क्या कोशिश की है:

  • मैं http://localhost:63342/my-first-app/public/index.php/hello या http://localhost:63342/my-first-app/public/index.php/about कोशिश की, लेकिन यह या तो काम नहीं करता।
  • मैंने sudo a2enmod rewrite कमांड sudo service apache2 restart दर्ज किया लेकिन यह या तो काम नहीं करता है।
  • मैंने composer dump-autoload की कोशिश की लेकिन यह या तो काम नहीं करता है।
  • मैंने None से Allapache2.conf में बदल दिया। अब इसका हिस्सा इस तरह दिखता है:

    <Directory /> 
        Options FollowSymLinks 
        AllowOverride All 
        Require all denied 
    </Directory> 
    
    <Directory /usr/share> 
        AllowOverride All 
        Require all granted 
    </Directory> 
    
    <Directory /var/www/> 
        Options Indexes FollowSymLinks 
        AllowOverride All 
        Require all granted 
    </Directory> 
    
    <Directory /srv/> 
        Options Indexes FollowSymLinks 
        AllowOverride All 
        Require all granted 
    </Directory> 
    

    लेकिन यह समस्या को हल नहीं करता है।

अद्यतन (2015/07/15):

php artisan route:list चलाने का परिणाम इस प्रकार है:

+--------+----------+-------+------+--------------------------------------------+------------+ 
| Domain | Method | URI | Name | Action          | Middleware | 
+--------+----------+-------+------+--------------------------------------------+------------+ 
|  | GET|HEAD |/ |  | App\Http\Controllers\[email protected] |   | 
|  | GET|HEAD | about |  | App\Http\Controllers\[email protected] |   | 
|  | GET|HEAD | hello |  | App\Http\Controllers\[email protected] |   | 
+--------+----------+-------+------+--------------------------------------------+------------+ 
+0

"php artisan मार्ग: सूची" चलाएं और आउटपुट पेस्ट करें। आपको वहां सभी परिभाषित मार्ग देखना चाहिए। –

+0

@ jedrzej.kurylo आपके उत्तर के लिए धन्यवाद। मैंने अपने प्रश्न के अंत में परिणाम जोड़ा। – today

+0

क्या आप डीडी ('टेस्ट') जोड़ सकते हैं; अपनी अनुक्रमणिका फ़ाइल के शीर्ष पर, "http: // localhost: 63342/my-first-app/public/index.php/about" पर जाएं और देखें कि परीक्षण आउटपुट होगा या नहीं? इस तरह हम जानते होंगे कि यह फिर से लिखने के साथ कुछ है या लार्वा कोड –

उत्तर

2

.htaccess फाइल laravel 5 प्रति इस परिदृश्य में काम करेगा फेरबदल नीचे आधिकारिक दस्तावेज:

Options +FollowSymLinks 
RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule^index.php [L] 
0

मैं रहा हूं एक लंबे समय के लिए इस कष्टप्रद समस्या है। .htaccess फ़ाइल में निम्नलिखित कोड आज़माएं

<IfModule mod_rewrite.c> 
    <IfModule mod_negotiation.c> 
     Options -MultiViews 
    </IfModule> 

    RewriteEngine On 

    RewriteCond %{REQUEST_URI}::$1 ^(/.+)/(.*)::\2$ 
    RewriteRule ^(.*) - [E=BASE:%1] 

    RewriteCond %{ENV:REDIRECT_STATUS} ^$ 
    RewriteRule ^index\.php(/(.*)|$) %{ENV:BASE}/$2 [R=301,L] 

    RewriteCond %{REQUEST_FILENAME} -f 
    RewriteRule .? - [L] 

    RewriteRule .? %{ENV:BASE}/index.php [L] 

</IfModule> 
संबंधित मुद्दे