كيف يمكنني إجبار "WWW" الفرعية W / Apache2 + Rails + Phusion Pracenger؟
-
19-09-2019 - |
سؤال
يريد عملائك استخدام 101 يعيد توجيهات لإجبار المجال الفرعي www "على مواقعهم. لذلك "example.com/something" يحل إلى "www.example.com/somthing" إلخ.
ما أحاول القيام به هو ببساطة إضافة هذا إلى ملف vhost الخاص بي:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName example.com
ServerAlias www.*
DocumentRoot /data/apps/example.com/current/public
RailsBaseURI /
RewriteEngine On
RewriteCond %{HTTP_HOST} ^example\.com
RewriteRule ^ http://www.example.com%{REQUEST_URI} [L,R=301]
</VirtualHost>
لقد ضمنت أيضا أن إعادة كتابة mod تم تمكين عن طريق:
sudo a2enmod rewrite
sudo /etc/init.d/apache2 force-reload
يبدو أن نتائج جهودي الحالية ناجحة بشكل أساسي. إعادة تشغيل Apache وكل شيء يعمل كما هو متوقع باستثناء إعادة الكتابة لا يحدث. لذلك كلا "www.example.com 'و" example.com "حل". لا يتم إعادة توجيه المتصفح إلى "www.example.com" عندما ينبغي عليه. أيه أفكار؟ لقد حاولت إعادة تحميل التكوين وإعادة تشغيل Apache عدة مرات، لكنني لا يبدو لي أن أحصل على قواعد إعادة الكتابة العاملة. هل أعطيها في المكان الخطأ عن طريق وضعها هنا في Vhost بدلا من ملف .htaccess؟
أي نصيحة هنا ستكون مفيدة. أنا حيرة تماما.
المحلول
ضع هذا أدناه إدخال VirtualHost الرئيسي الخاص بك:
<VirtualHost *:80>
ServerName example.com
RedirectMatch permanent ^/(.*) http://www.example.com/$1
</VirtualHost>
يجب أن يحتوي VirtualHost الرئيسي على الإدخال ServerName www.example.com وليس الأسماء المستعارة أو إعادة توجيهات. أيضا، mod_rewrite غير مطلوب لهذا إعادة التوجيه.