سؤال

أحاول إعادة توجيه طلبات البدل المجال إلى الدليل الفرعي.
ie. something.blah.domain.com --> blah.domain.com/something

أنا لا أعرف كيفية الحصول على اسم نطاق فرعي لاستخدامها في كتابة القاعدة.

الحل النهائي:

RewriteCond %{HTTP_HOST} !^blah\.domain\.com
RewriteCond %{HTTP_HOST} ^([^.]+)
RewriteRule ^(.*) /%1/$1 [L]

أو كما أشار pilif

RewriteCond %{HTTP_HOST} ^([^.]+)\.media\.xnet\.tk$
هل كانت مفيدة؟

المحلول

يجب أن يكون لديك نظرة على إعادة كتابة عنوان الموقع دليل من أباتشي الوثائق.

التالية هي لم تختبر ، ولكن يجب أن الخدعة:

RewriteCond %{HTTP_HOST} ^([^.]+)\.blah\.domain\.com$
RewriteRule ^/(.*)$           http://blah.domain.com/%1/$1 [L,R] 

هذا يعمل فقط إذا كان فرعي يحتوي على أي نقاط.وإلا سيكون لديك لتغيير Regexp في RewriteCond لتتناسب مع أي حرف التي ينبغي أن لا تزال تعمل بسبب رسو ، ولكن هذا بالتأكيد يشعر أكثر أمنا.

نصائح أخرى

جرب هذا:

RewriteCond %{HTTP_HOST} (.+)\.blah\.domain\.com
RewriteRule ^(.+)$ /%1/$1 [L]

@pilif (انظر التعليق):حسنا, هذا صحيح.أنا فقط نسخ .htaccess التي تستخدم على واحد من بلدي المشاريع.أعتقد أنه لديه نهج مختلف قليلا :)

@سام

الخاص بك RewriteCond خط خاطئ.توسيع متغير يتم تشغيلها مع % لا $.

RewriteCond %{HTTP_HOST} ^([^\.]+)\.media\.xnet\.tk$
            ^

التي ينبغي أن تفعل خدعة

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