• [قرار إداري] سيتم حذف جميع الأعضاء المسجلين الجدد الذين اختاروا تسمية عشوائية وليس لديهم صورة رمزية بعد 7 أيام.
  • [قرار إداري] يُمنع منعًا باتًا الرد بلغة غير العربية، أو بردود عشوائية، أو بالاكتفاء باقتباس الموضوع فقط. مخالفة ذلك قد تؤدي إلى حظر العضوية.
  • 👋 أهلاً وسهلاً بك أخي الزائر، يشرفنا انضمامك إلى مجتمعنا! التسجيل من هنا

Alotaibi

المشرف العام
عضوية موثوقة
إنضم
9 أكتوبر 2024
المشاركات
5,831
مستوى التفاعل
35,724
النقاط
3,020
العمر
55
الإقامة
تكاوزن العربية
مجموع اﻻوسمة
3
الجنس
ذكر
المشاهدات: 13 | الردود: 2
حل مشكلة ظهور index.php في الروابط


إزالة index.php من الرابط في تطبيقات PHP​

أفهم أنك تواجه مشكلة ظهور index.php في نهاية الروابط في تطبيقك.
هذه مشكلة شائعة ويمكن حلها بعدة طرق.​


الحلول المقترحة​

1. استخدام ملف .htaccess (لخوادم Apache)​

أنشئ ملف .htaccess في المجلد الرئيسي لتطبيقك وأضف المحتوى التالي:
apache

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]
</IfModule>

2. استخدام إعدادات Nginx​

إذا كنت تستخدم خادم Nginx، أضف التالي إلى إعدادات الموقع:
nginx

location / {
try_files $uri $uri/ /index.php?$query_string;
}

3. استخدام قاعدة في PHP​

يمكنك أيضًا إضافة هذا الكود في ملف index.php الخاص بك:
php

<?php
// إعادة توجيه إذا كان الرابط يحتوي على index.php
if (strpos($_SERVER['REQUEST_URI'], 'index.php') !== false) {
$new_url = str_replace('index.php', '', $_SERVER['REQUEST_URI']);
header('Location: ' . $new_url, true, 301);
exit();
}
?>

مثال عملي​

إليك صفحة HTML توضح كيفية إعداد ملف .htaccess مع أمثلة على الروابط قبل وبعد التعديل:
html

<!DOCTYPE html>
<html lang="ar" dir="rtl">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>إزالة index.php من الروابط</title>
<style>
* {
box-sizing: border-box;
margin: 0;
padding: 0;
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
}
body {
background-color: #f5f8ff;
color: #333;
line-height: 1.6;
padding: 20px;
}
.container {
max-width: 1000px;
margin: 0 auto;
background: white;
padding: 30px;
border-radius: 15px;
box-shadow: 0 0 20px rgba(0, 0, 0, 0.1);
}
header {
text-align: center;
margin-bottom: 30px;
padding-bottom: 20px;
border-bottom: 2px solid #4a6cf7;
}
h1 {
color: #4a6cf7;
margin-bottom: 15px;
}
h2 {
color: #4a6cf7;
margin: 25px 0 15px;
padding-bottom: 10px;
border-bottom: 1px solid #eee;
}
p {
margin-bottom: 15px;
font-size: 16px;
}
.code {
background: #2d2d2d;
color: #f8f8f2;
padding: 15px;
border-radius: 8px;
margin: 20px 0;
overflow-x: auto;
direction: ltr;
}
.before-after {
display: flex;
margin: 20px 0;
border: 1px solid #ddd;
border-radius: 8px;
overflow: hidden;
}
.before, .after {
flex: 1;
padding: 15px;
}
.before {
background: #ffe6e6;
border-right: 1px solid #ddd;
}
.after {
background: #e6ffe6;
}
.link {
padding: 8px 12px;
background: #eee;
border-radius: 4px;
margin: 10px 0;
display: inline-block;
}
.note {
background: #fff8e6;
padding: 15px;
border-right: 4px solid #ffc107;
border-radius: 4px;
margin: 20px 0;
}
@media (max-width: 768px) {
.before-after {
flex-direction: column;
}
.before {
border-right: none;
border-bottom: 1px solid #ddd;
}
}
</style>
</head>
<body>
<div class="container">
<header>
<h1>إزالة index.php من الروابط</h1>
<p>حل مشكلة ظهور index.php في نهاية الروابط في تطبيقات PHP</p>
</header>

<section>
<h2>المشكلة</h2>
<p>ظهور <code class="link">index.php</code> في نهاية الروابط مثل:</p>
<div class="link">example.com/index.php/about</div>

<div class="before-after">
<div class="before">
<h3>قبل</h3>
<div class="link">example.com/index.php/home</div>
<div class="link">example.com/index.php/about</div>
<div class="link">example.com/index.php/contact</div>
</div>
<div class="after">
<h3>بعد</h3>
<div class="link">example.com/home</div>
<div class="link">example.com/about</div>
<div class="link">example.com/contact</div>
</div>
</div>
</section>

<section>
<h2>الحل باستخدام ملف .htaccess</h2>
<p>أنشئ ملفًا باسم <code>.htaccess</code> في المجلد الرئيسي لتطبيقك وأضف المحتوى التالي:</p>

<div class="code">
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]
</div>

<div class="note">
<p>ملاحظة: تأكد من تفعيل mod_rewrite في خادم Apache الخاص بك.</p>
</div>
</section>

<section>
<h2>لخوادم Nginx</h2>
<p>إذا كنت تستخدم خادم Nginx، أضف التالي إلى إعدادات الموقع:</p>

<div class="code">
location / {
try_files $uri $uri/ /index.php?$query_string;
}
</div>
</section>

<section>
<h2>حل باستخدام PHP</h2>
<p>يمكنك إضافة هذا الكود في أعلى ملف <code>index.php</code> الخاص بك:</p>

<div class="code">
&lt;?php
// إعادة توجيه إذا كان الرابط يحتوي على index.php
if (strpos($_SERVER['REQUEST_URI'], 'index.php') !== false) {
$new_url = str_replace('index.php', '', $_SERVER['REQUEST_URI']);
header('Location: ' . $new_url, true, 301);
exit();
}
?&gt;
</div>
</section>
</div>
</body>
</html>

ملاحظات مهمة​

  1. تأكد من تفعيل mod_rewrite في خادم Apache
  2. تأكد من أن إعدادات الخادم تسماح باستخدام ملفات .htaccess
  3. بالنسبة لخوادم Nginx، يجب تعديل إعدادات الخادم مباشرة
  4. احفظ ملف .htaccess بترميز UTF-8 بدون BOM
أتمنى أن تساعدك هذه الحلول في حل المشكلة التي تواجهها!





__
 

Alotaibi

المشرف العام
عضوية موثوقة
إنضم
9 أكتوبر 2024
المشاركات
5,831
مستوى التفاعل
35,724
النقاط
3,020
العمر
55
الإقامة
تكاوزن العربية
مجموع اﻻوسمة
3
الجنس
ذكر

كلمة المدير

جميع المواضيع والمشاركات المكتوبة تعبّر عن وجهة نظر صاحبها ,, ولا تعبّر بأي شكل من الاشكال عن وجهة نظر إدارة المنتدى .

تواصل مع فريق العمل

  • Algeria, Palestine

  • t.me/techawzen

  • contact@techawzen.com

  • techawzen.com

عن منتديات تكاوزن العربية techawzen

تكاوزن، منتدى عربي يجمع محترفي التقنية، البرمجيات، الأمن السيبراني، أنظمة التشغيل، ومجتمع النخبة في المحتوى الحصري والدعم الفني.

تابعنا على المواقع الاجتماعية


إتصل بنا

 

أعلى

خيارات الاستايل

تلوين الاقسام
خلفية المنتدى
نوع الخط
جدول المنتديات
تمديد المنتدى
فصل الأقسام
إخفاء السايدبار
حجم الخط
الصورة الرمزية
بيانات العضو
إخفاء التواقيع

إرجاع خيارات الإستايل