簡體   English   中英

作為PHP站點上傳到Web,只有索引頁面工作

[英]Uploaded a s PHP site to the web, only index page works

我第一次上傳我的網站到ipage主機。 沒有public_html文件夾,根目錄實際上是公共的,因此我將所有網站文件夾上傳到它,並僅向我的公共文件提供開放查看權限。 現在我的主頁正在工作,其余部分沒有,我認為它與文件的位置有關,現在與本地不同,因為ipage目錄的結構。 我得到的錯誤是“找不到頁面”。

這是我的route.php文件中的一個示例:

Route::get('/', 'PagesController@index');
Route::get('store', 'StoreController@index');

(主頁工作,商店沒有)。

控制器示例:

class PagesController extends MainController
{
public function index()
{   
    self::$data['title'] = 'Ayala & Tamar | Home Page';
    return view('content.home', self::$data);       
}


 class StoreController extends MainController
{
//Getting dynamic categories
public function index()
{ 
 self::$data['title'] = 'Ayala & Tamar | Store';
 self::$data['categories'] = Category::all()->toArray();
 return view('content.categories', self::$data);   
}

我的所有Laravel和PHP結構保持不變並且位於主項目目錄中,除了不再位於公共文件夾中的公共文件之外,它們直接位於主目錄中。

有沒有人有解決方案的想法? 謝謝!

像這樣設置路由,所以你的route.php文件看起來像這樣

Route::controllers([
  'store' => 'StoreController'
]);

Route::get('/', 'HomeController@index');

你的控制器

class StoreController extends Controller
{
  public function getIndex(Request $request)
  {
    self::$data['title'] = 'Ayala & Tamar | Store';
    self::$data['categories'] = Category::all()->toArray();
    return view('content.categories', self::$data);   
  }
}

從第一件事就出現在我腦海中:你沒有將所有請求重定向到index.php

如果您使用的是apgin ,請檢查.htaccess文件和mod_rewrite擴展名,如果您使用的是nginx檢查站點配置。 它必須正確地將所有請求重定向到index.php,否則您的請求除索引之外不會工作。

來自新鮮laravel 5.3的.htaccess文件

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}]

對於nginx,你應該在你的站點配置文件中這樣:

try_files $uri $uri/ /index.php?$query_string;

location ~ \.php$ {
        try_files $uri /index.php =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/var/run/php5-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }

當然nginx配置可以是不同的。 閱讀手冊並正確配置它們。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM