Options -Indexes
DirectoryIndex login.php index.php

<IfModule mod_rewrite.c>
RewriteEngine On

# منع الوصول إلى المجلدات الحساسة
RewriteCond %{THE_REQUEST} \s/+(.*/)?(?:includes|database|docs|tests)(?:/|[?\s]) [NC]
RewriteRule ^ - [F,L]

# منع الوصول إلى الملفات المخفية والسجلات القديمة
RewriteRule (^|/)\. - [F,L]
RewriteRule (^|/)(error_log|master-dashboard)$ - [F,L,NC]

# ==================================================
# روابط الطالب النظيفة
# ==================================================

# تحويل رابط تسجيل دخول الطالب القديم
RewriteCond %{THE_REQUEST} \s/+student-gateway/login\.php(?:[?\s]) [NC]
RewriteRule ^login\.php$ /student-gateway/ [R=302,L]

# تحويل رابط داشبورد الطالب القديم
RewriteCond %{THE_REQUEST} \s/+student-gateway/student/dashboard\.php(?:[?\s]) [NC]
RewriteRule ^student/dashboard\.php$ /student-gateway/student/dashboard [R=302,L]

# فتح تسجيل دخول الطالب بدون php
RewriteRule ^$ login.php [L,QSA]
RewriteRule ^login/?$ login.php [L,QSA]

# فتح داشبورد الطالب بدون php
RewriteRule ^student/dashboard/?$ student/dashboard.php [L,QSA]

# ==================================================
# روابط المعلم النظيفة
# ==================================================

# تحويل رابط تسجيل دخول المعلم القديم
RewriteCond %{THE_REQUEST} \s/+student-gateway/teacher/login\.php(?:[?\s]) [NC]
RewriteRule ^teacher/login\.php$ /student-gateway/teacher/login [R=302,L]

# تحويل رابط داشبورد المعلم القديم
RewriteCond %{THE_REQUEST} \s/+student-gateway/teacher/dashboard\.php(?:[?\s]) [NC]
RewriteRule ^teacher/dashboard\.php$ /student-gateway/teacher/dashboard [R=302,L]

# فتح مجلد المعلم على صفحة تسجيل الدخول
RewriteRule ^teacher/?$ teacher/login.php [L,QSA]

# فتح تسجيل دخول المعلم بدون php
RewriteRule ^teacher/login/?$ teacher/login.php [L,QSA]

# فتح داشبورد المعلم بدون php
RewriteRule ^teacher/dashboard/?$ teacher/dashboard.php [L,QSA]
</IfModule>

<FilesMatch "(^\.|^error_log$|^master-dashboard$|\.env$|\.ini$|\.log$|\.sql$|\.zip$|\.bak$|\.old$|\.dist$|\.example\.php$|config\.local\.php$|composer\.(json|lock)$|package(-lock)?\.json$)">
    Require all denied
</FilesMatch>

<IfModule mod_headers.c>
Header always set X-Content-Type-Options "nosniff"
Header always set X-Frame-Options "SAMEORIGIN"
Header always set Referrer-Policy "strict-origin-when-cross-origin"
</IfModule>

<IfModule mod_php.c>
php_flag display_errors Off
php_flag log_errors On
php_value upload_max_filesize 20M
php_value post_max_size 24M
php_value max_execution_time 120
</IfModule>