شناخته نشدن روت‌ها بعد از آپلود روی هاست

9 ماه پیش توسط farhad_dll آپدیت شد
آفلاین
user-avatar
محمد ( 768 تجربه )
4 سال پیش

لینک کوتاه اشتراک گذاری

0

سلام، من فایل‌های پروژه را روی هاست آپلود کردم و از میان همه روت‌ها فقط روت '/' شناسایی می‌شود و بقیه روت‌ها شناسایی نمی‌شوند و ارور 404 خود سرور نمایش داده می‌شود. یعنی اولا اینکه روت‌ها با اینکه وجود دارند و روی لوکال درست کار می‌کنند روی هاست شناسایی نمی‌شوند و ثانیا اینکه من صفحه ارور 404 گذاشتم توی فایل‌ها ولی ارور 404 خود سرور نمایش داده می‌شود.
من آدآن دامین استفاده کردم و با استفاده از متدی هم که آقای موسوی گفتند public روی آد آن تنظیم کردم. در حال حاضر فقط یک روت شناسایی می‌شود یعنی تابع از کنترلر فراخوانی شده و ویو مورد نظر نمایش داده می‌شود.

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

// Admin
Route::group(['namespace' => 'Admin','middleware' => ['auth:web','checkAdmin'], 'prefix' =>'admin'], function (){
$this->get('/panel', '[email protected]');
$this->resource('orders','OrderController');
$this->resource('translators','TranslatorController');

$this->group(['prefix' => 'users'],function (){
    $this->get('/','[email protected]');
    $this->get('/{user}/destroy','[email protected]')->name('user.destroy');

});

});

  Route::group(['middleware' => 'auth:web'],function (){

    $this->group(['prefix'=>'/user/panel'],function (){

    $this->get('/','[email protected]')->name('user.panel');
    $this->get('/history','[email protected]')->name('user.panel.history');
});

});

Route::group(['namespace' => 'Auth'], function (){  

// Authentication Routes...
$this->get('login', '[email protected]')->name('login');
$this->post('login', '[email protected]');
$this->get('logout', '[email protected]')->name('logout');

 // Registration Routes...
 $this->get('register', '[email protected]')->name('register');
 $this->post('register', '[email protected]');

 // Password Reset Routes...
 $this->get('password/reset', '[email protected]')->name('password.request');
 $this->post('password/email', '[email protected]')->name('password.email');
 $this->get('password/reset/{token}', 'ResetPas[email protected]')->name('password.reset');
 $this->post('password/reset', '[email protected]');

});

آفلاین
user-avatar
محمد ( 768 تجربه )
4 سال پیش

لینک کوتاه اشتراک گذاری

0

فایل .htaccess رو که در مسیر public قرار می‌دهم به نظر می‌رسد روت ها شناسایی می‌شوند اما این ارور را دریافت می‌کنم
RecursiveDirectoryIterator::hasChildren(): open_basedir restriction in effect
File(/home/xxx/access-logs) is not within the allowed path(s):

آفلاین
user-avatar
Ali Hamrani ( 1208 تجربه )
3 سال پیش

لینک کوتاه اشتراک گذاری

0

منم دقیقا همین مشکل رو دارم

آفلاین
user-avatar
حسام موسوی ( 459435 تجربه )
3 سال پیش
تخصص : طراح و برنامه نویس

لینک کوتاه اشتراک گذاری

1

برای اون دسته از دوستانی که مدیریت کننده سرورشون nginx هست باید تغییراتی جداگانه در فایلی انجام بدن حالا نمیدونم سرورتون nginx هست یا نه اما اگر ارور مربوطه که فرستادید رو داره روی سرور apache میده یه نگاه به ورژن php بندازید حتما و اینکه به پشتیبانی سرورتون بگید دسترسی به تابع open_basedir رو باز کنه البته در مورد اول بارها به این موضوع برخورد کردم و احتمال میدم همون اولی باشه

آفلاین
user-avatar
محمد ( 768 تجربه )
3 سال پیش

لینک کوتاه اشتراک گذاری

0

فک کنم مشکل از ورژن php باشه که برای من حل شد

آفلاین
user-avatar
meysamDarkcoder:) ( 1070 تجربه )
2 سال پیش
تخصص : برنامه‌نویس

لینک کوتاه اشتراک گذاری

0

سلام. اگه مشکل از ورژن php باشه سایت موقع بالا میاد ارور میده. همچنین لاراول 5.8 با php version 7.2 سازگار هست.
اما وقتی فقط روت اصلی باز میکنه احتمال زیاد فایل htaccess توی پوشه public احتمالا آپلود نشده، لطفا اول چک کنین احتمال زیاد واسه htaccess هست

آفلاین
user-avatar
امیر ( 22270 تجربه )
2 سال پیش
تخصص : توسعه دهنده لاراول - فلاتر

لینک کوتاه اشتراک گذاری

4

می بایست ورژن php ۷.۲ به بالا بزارید و htaccess هم بصورت زیر باشه

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

    RewriteEngine On

    # Handle Authorization Header
    RewriteCond %{HTTP:Authorization} .
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

    # Redirect Trailing Slashes If Not A Folder...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} (.+)/$
    RewriteRule ^ %1 [L,R=301]

    # Handle Front Controller...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]
</IfModule>

# php -- BEGIN cPanel-generated handler, do not edit
# Set the “ea-php72” package as the default “PHP” programming language.
<IfModule mime_module>
  AddHandler application/x-httpd-ea-php72 .php .php7 .phtml
</IfModule>
# php -- END cPanel-generated handler, do not edit
آفلاین
user-avatar
حمید ( 5170 تجربه )
1 سال پیش
تخصص : برنامه نویس

لینک کوتاه اشتراک گذاری

0

@hesammousavi
من هم این مشکل رو دارم و فایل های پروژه لاراولم رو به سرور مجازی منتقل کردم که روی این سرور دایرکت ادمین و nginx نصبه.
فایل های پروژه رو داخل یه پوشه به اسم my_project قرار دادم که این پوشه رو داخل public_html گذاشتم. داخل روت پوشه my_project محتویات پوشه public لاراول رو قرار دادم و بقیه رو در یه پوشه به اسم فایل گذاشتم و آدرس های فایل ایندکس هم درست کردم. روی لوکال که کار می کنم مشکلی با آدرسها ندارم و صفحات پروژه لاراول برام باز میشن ولی روی سرور پیغام 404 میاد و بجز روت اصلی هیج روت دیگه ای شناسایی نمیشه.
می خواستم بدونم فایل htaccess رو برای وب سرور nginx چطور تنظیم و کدنویسی کنم تا مشکلم برطرف بشه.
تشکر. ببخشید که منم طولانی شد

آفلاین
user-avatar
farhad_dll ( 1110 تجربه )
9 ماه پیش

لینک کوتاه اشتراک گذاری

0

سلام دوستان . بنده هم این مشکل رو داشتم.
یکی از اصلی ترین دلایل این مشکل اینه که ما توی ویندوز داریم پروژمونو میسازیم . و سیستم ویندوز نسبت به شناسایی حروف بزرگ و کوچک حساس نیست.
ولی وقتی همین پروژه رو میبریم توی سرور واقعی و باتوجه به اینکه هاست لاراولی باید لینوکس باشه و لینوکس نسبت به حروف کوچک و بزرگ حساسه پس باید توی صدا کردن روت ها دقیق همونی که تعریف شده رو صدا بزنیم.
بهترین روش اینه همه رو با حروف کوچک تعریف کنیم و صداشون کنیم. خیلی راحت.😍😍😍😍😍

برای ارسال پاسخ لازم است، ابتدا وارد سایت شوید.