سؤال

أنا أتساءل ، هل من الممكن إزالة الفهرس. php من عنوان URL؟ أساسا على بعض الصفحات في موقع لدي هذا الهيكل ،

http://www.domain.com/index.php/members/register, ، لكن صفحات أخرى لدي هياكل عناوين URL مثل هذا ، http://www.domain.com/category/products/id/5, ، أريد أن أعرف هل من الممكن مع HTACCESS إزالة الفهرس. كيف لي أن تذهب عن القيام بذلك؟

هل كانت مفيدة؟

المحلول

نعم ، يمكنك. مع هذه القاعدة أي طلب /index.php سوف يزال:

RewriteCond %{THE_REQUEST} ^[A-Z]+\ /index\.php[/?\ ]
RewriteRule ^index\.php(/(.*))?$ /$2 [L,R=301]

ولكن يجب عليك استخدام عناوين URL المناسبة مباشرة من البداية بحيث تقوم بتطبيق المستندات التي لا تحتوي روابطها على /index.php.

نصائح أخرى

إذا كنت ترغب في إعادة كتابة index.php/وحدة التحكم على مستوى العالم

هذا.

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule> 

يتحقق هذا التكوين على Apache سواء كان الملف/الدليل موجودًا على القرص أم لا (أي الطلب يتطابق مع مورد حقيقي على القرص) ، وأعد كتابة الطلب إلى وحدة التحكم الأمامية الخاصة بك إذا لزم الأمر.

لذا http://www.domain.com/resources/image.png يجب إرجاع مورد الصورة. و http://www.domain.com/user/show/5 يجب إعادة كتابة بشفافية http://www.domain.com/index.php/user/show/5

مع هذا التكوين ، يمكنك إزالة جميع مراجع index.php في عناوين URL الخاصة بك واترك إعادة الكتابة إلى خادم الويب.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top