اذهب إلى المحتوى

السؤال

نشر

كيف أضبط إعدادات htaccess لأنها والله سببت لي مشاكل تارة تظهر الصفحة الريئسية فقط وباقي الموقع لا لما انسخ محتوياته من مكان آخر يظهر مثلا كل الموقع ولكن من غير storage:link إلا أنه يظهر إذا عدلت تعديل آخر ... هذا كله لأنني لا أعرف محتوياته فقط أنسخ والصق

Recommended Posts

  • 1
نشر

هو لا يخص لارافيل على وجه الخصوص، وانما يخص خوادم Apache.

فملف htaccess هو ملف اعداد من قبل خوادم Apache يحدد كيفية تقديم أشكال مختلفة من البيانات والتعامل مع طلبيات HTTP. ويتم ذلك عن طريق وصف مجموعة من الموجهات Directives. هاته الموجهات تحدد كيفية الترخيص والتوثيق، تخصيص رسائل الاخطاء واكوادها، تجاوز واعادة كتابة الروابط، اعداد الكاش وغيرها..

يمكن تعميم هاته الكيفيات على كامل الانماط والمجلدات والملفات الفرعية، كما يمكن تخصيص طرق للتعامل مع كل مجلد او ملف بشكل مستقل. وهذا هو سبب تسميته بملف التكوينات الموزعة او distributed configuration files حسب التوثيق الرسمي له.

هذا المنطق يفرض عليه الكيفية التي هو عليها في كتابته. ورغم انه مكتوب بلغة Apache إلا انه لا يجب عليك معرفة الا ما تحتاجه منه بالضبط.

لنأخذ كلا من الأمثلة:

Header add Sample-Header "My Value"

يقوم هذا باضافة ترويسة Sample-Header بالقيمة My Value لكامل الطلبيات.

وهذا تعليق:

# Header add Sample-Header "My Value"

اي قواعد هنا سيتم تطبيقها في نمط mod_expires:

<IfModule mod_expires.c>
# fff
</IfModule>

استعن بالتوثيق الرسمي لخادم Apache لفهم محتوى ملف ما لديك. ستجد مجموعة موجهات متعلق بكل نمط على حدى. اعرف اكثر عن تلك التي تخصك.

ملف htaccess معد بشكل جيد في لارافيل. لا أظن انك تحتاج اعادة تجاوزه. مرفق.

  • 0
نشر
بتاريخ 8 ساعات قال Adnane Kadri:

هو لا يخص لارافيل على وجه الخصوص، وانما يخص خوادم Apache.

فملف htaccess هو ملف اعداد من قبل خوادم Apache يحدد كيفية تقديم أشكال مختلفة من البيانات والتعامل مع طلبيات HTTP. ويتم ذلك عن طريق وصف مجموعة من الموجهات Directives. هاته الموجهات تحدد كيفية الترخيص والتوثيق، تخصيص رسائل الاخطاء واكوادها، تجاوز واعادة كتابة الروابط، اعداد الكاش وغيرها..

يمكن تعميم هاته الكيفيات على كامل الانماط والمجلدات والملفات الفرعية، كما يمكن تخصيص طرق للتعامل مع كل مجلد او ملف بشكل مستقل. وهذا هو سبب تسميته بملف التكوينات الموزعة او distributed configuration files حسب التوثيق الرسمي له.

هذا المنطق يفرض عليه الكيفية التي هو عليها في كتابته. ورغم انه مكتوب بلغة Apache إلا انه لا يجب عليك معرفة الا ما تحتاجه منه بالضبط.

لنأخذ كلا من الأمثلة:


Header add Sample-Header "My Value"

يقوم هذا باضافة ترويسة Sample-Header بالقيمة My Value لكامل الطلبيات.

وهذا تعليق:


# Header add Sample-Header "My Value"

اي قواعد هنا سيتم تطبيقها في نمط mod_expires:


<IfModule mod_expires.c>
# fff
</IfModule>

استعن بالتوثيق الرسمي لخادم Apache لفهم محتوى ملف ما لديك. ستجد مجموعة موجهات متعلق بكل نمط على حدى. اعرف اكثر عن تلك التي تخصك.

ملف htaccess معد بشكل جيد في لارافيل. لا أظن انك تحتاج اعادة تجاوزه. مرفق.

شكرا أخي عدنان

حسنا لكن لماذا لما اضعه لا تعمل storage:link بحيث لاتظهر الصور sit.com/storage/logo.png 

وفي ملف آخر لل htaccess تظهر لو زرت الروابط ولكن الموقع لايظهر ؟

 

  • 0
نشر
بتاريخ 1 دقيقة مضت قال Brahim Semmani:

شكرا أخي عدنان

حسنا لكن لماذا لما اضعه لا تعمل storage:link بحيث لاتظهر الصور sit.com/storage/logo.png 

وفي ملف آخر لل htaccess تظهر لو زرت الروابط ولكن الموقع لايظهر ؟

 

هل يتم انشاء الرابط الرمزي symlink بشكل عادي ثم لا تعمل الصفحات؟ هل يمكنك ارفاق محتويات ملف htaccess لديك؟

ايضا يرجى الاشارة ان كنت تمتلك ملف htaccess  آخر ضمن مجلد المشروع 

  • 0
نشر

لا امتلك إلا واحد أخي عدنان وهو في المسار الرئيسي public_html  أخرجته مع iindex.php  وبقية المحتويات التي كانت في public تركتها هناك أم يجب أنقل htaccess إلى public  حيث كان ؟ ,لكنه لم يعمل ؟ 

محتوياته :

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

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

المشكل الوحيد الصور لا تظهر عملت من خلال سطر الأوامر ssh  

rm -R storage  //inside public

ثم 

php artisan storage:link //inside public_html

شكرا لك أخي عدنان

  • 0
نشر
بتاريخ 2 دقائق مضت قال Brahim Semmani:

وبقية المحتويات التي كانت في public تركتها هناك أم يجب أنقل htaccess إلى public  حيث كان ؟ ,لكنه لم يعمل ؟ 

يفترض ان يبقى على نفس مستوى ملف index.php 

بالنسبة لـلرابط الرمزي، قد لا يعمل بشكل صحيح ان كنت تحاول تنفيذ الامر php artisan storage:link بعد التعديل على هيكلة الملفات.

وبما انه لم يكن هنالك مشكلة في انشاء رابط رمزي اول مرة، فيمكنك على كل حال انشاءه بشكل مخصص. يوجد الدالة symlink في php

لفعل ذلك قم بـ:

  • انشاء ملف وليكن symlink.php على نفس مستوى index.php 
  • يحتوي هذا الملف السطر التالي:
    <?php 
    
    symlink('/home/username/folder_name/storage/app/public' ,'/home/username/public_html/storage');

    حيث ان المعامل الاول يعبر عن الملف الاصل الذي ستشير اليه الوصلة. في حين ان المعامل الثاني يشير الى اسم الوصلة ووجهتها. قم بتعديله وفق ما هو لديك. 

  • لتنفيذ هذا الملف قم بفتحه على المتصفح وانتظر الى حد توقف الصفحة عن التحميل.

هل قام هذا بحل مشكلتك؟

من المهم حذف الملف symlink بعد انشاء الوصلة او الرابط الرمزي.

الدالة symlink()‎ في PHP

  • 0
نشر
بتاريخ 8 ساعات قال Adnane Kadri:

يفترض ان يبقى على نفس مستوى ملف index.php 

بالنسبة لـلرابط الرمزي، قد لا يعمل بشكل صحيح ان كنت تحاول تنفيذ الامر php artisan storage:link بعد التعديل على هيكلة الملفات.

وبما انه لم يكن هنالك مشكلة في انشاء رابط رمزي اول مرة، فيمكنك على كل حال انشاءه بشكل مخصص. يوجد الدالة symlink في php

لفعل ذلك قم بـ:

  • انشاء ملف وليكن symlink.php على نفس مستوى index.php 
  • يحتوي هذا الملف السطر التالي:
    
    <?php 
    
    symlink('/home/username/folder_name/storage/app/public' ,'/home/username/public_html/storage');

    حيث ان المعامل الاول يعبر عن الملف الاصل الذي ستشير اليه الوصلة. في حين ان المعامل الثاني يشير الى اسم الوصلة ووجهتها. قم بتعديله وفق ما هو لديك. 

  • لتنفيذ هذا الملف قم بفتحه على المتصفح وانتظر الى حد توقف الصفحة عن التحميل.

هل قام هذا بحل مشكلتك؟

من المهم حذف الملف symlink بعد انشاء الوصلة او الرابط الرمزي.

الدالة symlink()‎ في PHP

لا لم تعمل أخي عدنان للأسف أتعبتك معي,

Untitled.thumb.png.96340862c0888358e2c0359dd2d17ea3.png

شوف لما ادخل على اللينك موجودة اختصارات الصور فيه 

أنا عملت مثل ماقلت لي : 

لاحظ المعامل الأول هو مسار storage 

والثاني مسار الإختصار

<?php 

symlink('/storage/app/public' ,'/public/storage');

 

ثم زرت الرابط :

www.site.com/symlink.php

 

  • 0
نشر
بتاريخ 8 ساعات قال Adnane Kadri:

ما المشكلة اذن؟

هل تواجه مشكلة باستعراض الصور في المتصفح او الوصول اليها؟

أيوه تمام يطلعلي 404 لما أزر رابط الصورة , مثلا اولا الصورة لاتظهر لكي أعرف رابطها أضع ماداخل src  داخل alt فقط ليطبع الرابط نفس الرابط أضعه على المتصفح يظهرلي 404   

site.com/storage/logo1.png 

  • 1
نشر
بتاريخ 28 دقائق مضت قال Brahim Semmani:

أيوه تمام يطلعلي 404 لما أزر رابط الصورة , مثلا اولا الصورة لاتظهر لكي أعرف رابطها أضع ماداخل src  داخل alt فقط ليطبع الرابط نفس الرابط أضعه على المتصفح يظهرلي 404   

site.com/storage/logo1.png 

لاحظ ان الصور التي لديك تظهر وبشكل عادي على:

https://site.com/public/storage/logo1.png

في حين انها غير متوفرة على:

https://site.com/storage/logo1.png

يعني هذا ان لا مشكلة في تكوين الرابط الرمزي symlink فهو يعمل وبشكل عادي تماما. 

الفكرة هنا هي في ان هنالك مشكلة في تكوين روابط ملفات الاصول مثل الصور. اعد ارفاق مسارات صحيحة الى خصائص src الخاصة بهاته الصور. 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...