إعادة توجيه فرعي على هر من خلال خادم اباتشي مع mod_jk
-
06-07-2019 - |
سؤال
ولدي القط (6.0.20) والإعداد اباتشي خادم (2.2) واسعى لإعادة توجيه كافة المجالات الفرعية لسياق محدد، على نطاقي.
ومنها مثلا، s.example.com إعادة توجيه إلى www.example.com
وأباتشي وميزة التوجيه طلبات عبر mod_jk
(حاولت mod_proxy
، ولكن لم المغلق وشبيبة يتم تحميل كما عناوين ليست مطلقة).
وبلدي الإعداد الحالية:
وhttpd.conf:
Include C:/apache-tomcat-6.0.20/conf/auto/mod_jk.conf
RewriteEngine On
<VirtualHost *:80>
ServerName www.example.co.za
ServerAlias www.example.co.za example.co.za *.example.co.za
RewriteEngine on
RewriteLog "C:/Program Files/Apache Software Foundation/Apache2.2/logs/rewrite.log"
RewriteLogLevel 3
RewriteCond %{HTTP_HOST} example\.co\.za.*$ [NC]
RewriteRule ^(.*)$ http://www.example.co.za [L]
JkMount /* worker1
</VirtualHost>
JkMount /* worker1
وserver.xml:
<Host name="www.example.co.za" appBase="hosts/example"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
<Valve className="org.apache.catalina.valves.AccessLogValve"
directory="C:/apache-tomcat-6.0.20/logs" prefix="localhost_access_log."
suffix=".txt" pattern="common" resolveHosts="false"/>
<Context path="" docBase="Property"/>
<Alias>*.example.co.za</Alias>
</Host>
ووإعادة توجيه لww.example.com تسير في غير وقف توجيه حلقة.
وهذا أمر مهم للغاية من الناحية الأمنية حيث يمكن للمستخدم الوصول إلى مدير هر والتطبيقات الأخرى على الملقم (أي هدسون).
المحلول
جرب هذه القاعدة:
RewriteCond %{HTTP_HOST} !^www\.example\.co\.za$
RewriteRule ^ http://www.example.co.za [L]
وإذا كنت ترغب في الاحتفاظ URI طلب:
RewriteCond %{HTTP_HOST} !^www\.example\.co\.za$
RewriteRule ^ http://www.example.co.za%{REQUEST_URI} [L]
وبالإضافة إلى ذلك فإنني أوصي لكم لاستخدام إعادة توجيه 301. إضافة لذلك العلم R
بقيمة 301 عن طريق استبدال [L]
مع [L,R=301]
.