سؤال

أنا أستخدم MOD_REWRITE لإنشاء عناوين URL SEO. في الأساس الشيء يعمل بالطريقة التالية: يتم اكتشاف جميع الطلبات بواسطة .htaccess وإعادة توجيهها إلى برنامج نصي PHP (دعنا نقول RUNVENT.PHP). Transform.php يوزع عنوان URL SEO ويحوله إلى عنوان URL العادي، ثم يتضمن index.php، ثم يمسك إخراج التطبيق (Index.php's) ويستخدم Regex لتحويل جميع عناوين URL العادية إلى عناوين URL SEO. لذلك الخطوة الحيوية هي جعل كل طلب تمر عبر التحويل. . ومع ذلك، فإن My.htaccess قد تمكنت إلى حد ما، فقد تمكنت من تحديدها على الأسطر التالية.

<IfModule mod_rewrite.c>
    Options +FollowSymLinks
    RewriteEngine on

    RewriteRule ^index\.php?(.*)$ ./transform.php?p=$1&%{QUERY_STRING} [L]

</IfModule>

تحدث المشكلة مع عنوان URL الأولي (الجذر): http://mysite.com/. وبعد عندما اكتب http://mysite.com/ ويقع الموقع في شركاتي المحلية، كل شيء يعمل بشكل جيد. http://mysite.com/ يتم اكتشافها بواسطة .htaccess وإرسالها إلى تحويل.php لمزيد من المعالجة. ولكن على خادم آخر هذا الخط لا يعمل (دعنا نقول http://mysite- sother-server.com/). خط .htaccess ببساطة لا يمسك الطلب. كل شيء يعمل بشكل جيد ل http://mysite- sother-server.com/index.php. على أية حال.

علاوة على ذلك، لدي العديد من المواقع في هذا الخادم الثاني وبعضها يعمل بينما البعض منهم لا. انها مثل بالنسبة لبعض منهم يتم حل عنوان URL لأول مرة http://mysite- sother-server.com/index.php. ثم يتم التعامل معها بواسطة .htaccess بينما بالنسبة للآخرين، لم يتم حل عنوان URL و .htaccess http://mysite- sother-server.com/

أنا مرتبك جدا وحاول googling دون أي حظ. أي مساعدة بتقدير كبير.

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

المحلول

أفترض أنه تم تكوين Apache عدم قبول ملفات .htacces.

يجب عليك تمكينه من تكوين HTTPD مع إعداد AnletOverride.

http://httpd.apache.org/docs/2.0/mod/core.html#atholloverRide.

احتمال آخر هو أن خادم الإنتاج لم يتم تحميل mod_rewrite، والتحقق من توجيهات LoadModule لذلك.

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