راکت

خطا در دو زبانه کردن سایت

13 پاسخ

سلام دوستان من میخام وب سایت دو زبانه باشه و یک مشکل بزرگ برخوردم . الان وب سایتم در هاست هست و وقتی
/fa رو میزنیم درست کار میکنه ولی وقتی /en رو میزنیم اصلا کار نمیده و این خطا رو میده
Forbidden
You don't have permission to access /en/ on this server.

تمام قسمت ها رو حتی داخل فایل index.php من تست کردم اصلا داخل این فایل هم نمیشه حالا جالبیش اینه اکر من بنویسم به عنوان مثال /eng درست کار میکنه . ولی خب من میخام en باشه . دلیلش چی میتونه باشه بنطرتون

ثبت پرسش جدید

پاسخ‌ها

13
علی بیات
علی بیات
@ali.bayat

تخصص: توسعه دهنده ارشد وب

روت هارو چک کردید؟

علی
علی
@alif

تخصص: Laravel

یعنی چی ؟ ببینین همه چی کار میکنه جز en

شاید پاسخ شما همین‌جا باشد

محمد صادقیان
محمد صادقیان
@drcode.ir

تخصص: برنامه نویس وب - فریم ورک Laravel

پوشه en شما دسترسی مناسبی نداره. از داخل هاست پوشه en رو چک کنید که permission = 0755 و فایل های داخل پوشه permission = 0644 رو داشته باشند.
فقط توجه کنید که تمام پوشه های داخل en هم باید دارای سطح دسترسی 0755 باشند و تمام فایل ها 0644.

علی
علی
@alif

تخصص: Laravel

نه تمام دسترسی هم مثل هم بود هیچی فرق نداشت

mroshangara
mroshangara
@mroshangara

یه مقدار بیشتر توضیح بدید، مثلا از چه زبان و یا فریم‌ورک‌ی استفاده میکنید با چه ماژولی قصد دوزبانه کردن رو دارید و اطلاعاتی که بتونه کمک کنه راحت تر به نتیجه رسید.

علی
علی
@alif

تخصص: Laravel

بله چشم
خب من از لاراول استفاده میکنم. از قابلیت های همین فریم روک استفاده میکنم.

علی
علی
@alif

تخصص: Laravel

Middleware/LanguageMiddleware.php

public function handle($request, Closure $next)
    {
        $locale = $request->segment(1);
        if (!array_key_exists($locale, config('app.locales'))) {
            $segments = $request->segments();
            $segments[0] = config('app.fallback_locale');
            return redirect(implode('/', $segments));

        }
        app()->setLocale($locale);
        return $next($request);
    }
علی
علی
@alif

تخصص: Laravel

Config/app.php

    'locale' => 'fa',
    'locales' => ['fa' => 'Persian', 'en' => 'English'],
    'fallback_locale' => 'fa',
علی
علی
@alif

تخصص: Laravel

RouteServiceProvider.php

  protected function mapWebRoutes()
    {
        $locale = request()->segment(1);
        app()->setLocale($locale);

        Route::middleware('web')
            ->namespace($this->namespace)
            ->prefix($locale)
            ->group(base_path('routes/web.php'));
    }
علی
علی
@alif

تخصص: Laravel

سه فایل بالا فایلهایی هستند که نوشته شده طبق آموزش استاد در دوره لاراول
ولی نمیدونم en کار نیمکنه
eng کار میکنه فقط مشکل en هست

محمد صادقیان
محمد صادقیان
@drcode.ir

تخصص: برنامه نویس وب - فریم ورک Laravel

یعنی شما وقتی گوشه fa رو کپی می کنید و اسمش رو تغییر میدید به en باز همین مشکل هست؟

علی
علی
@alif

تخصص: Laravel

@dr-code.ir بله دقیقا

Alimotreb
Alimotreb
@Alimotreb

تخصص: کانفیگ سرور و برنامه نویس

سلام
@alif
\resources\lang
داخل این مسیر چه پوشه هایی با چه نام هایی دارید
یه شاخه بندی کنید ببینید چیا توشه !

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام