سؤال

لأسباب مختلفة ، مثل ملفات تعريف الارتباط, SEO, و إبقاء الأمور بسيطة ، أود أن جعل أباتشي تلقائيا إعادة توجيه أي طلبات http://www.foobar.com/anything إلى http://foobar.com/anything.أفضل ما يمكن أن يأتي مع هو mod_rewrite على أساس المسخ هناك بعض سهلة طريقة بسيطة لمعرفة ذلك "إعادة توجيه جميع طلبات المجال ABC إلى XYZ"?

PS:وجدت هذا إلى حد ما ذات السؤال, لكنه IIS ويفعل عكس ما أريد.كما انها لا تزال معقدة.

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

المحلول

انها سهلة كما:

<VirtualHost 10.0.0.1:80>
        ServerName www.example.com
        Redirect permanent / http://example.com/
</VirtualHost>

التكيف مع أسماء المضيفين و IPs حسب الحاجة :)

نصائح أخرى

أبسط و أسهل إلى نسخ من موقع إلى موقع:

RewriteCond %{HTTP_HOST} ^www\.(.+)$
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]

بسيطة جدا إذا كنت تستخدم mod_rewrite, ونحن جميعا القيام به.)

هذا هو جزء من .htaccess من موقع لايف:

RewriteEngine on

# Catches www.infinite-labs.net and redirects to the
# same page on infinite-labs.net to normalize things.

RewriteCond %{HTTP_HOST} ^www\.infinite-labs\.net$
RewriteRule ^(.*)$ http://infinite-labs.net/$1 [R=301,L]

استخدام .ملف htaccess مع بعض mod_rewrite القواعد:

RewriteEngine On
RewriteRule ^www.SERVERNAME(.*) http://SERVERNAME$1 [L,QSA]

أنا لست متأكدا من أنني حصلت على بناء الجملة الصحيح مع $1 لكنها موثقة جيدا.L يرسل الموقع:رأس المتصفح ، QSA يعني سلسلة الاستعلام الإلحاقي.

وبما انك ذكرت باستخدام mod_rewrite, أقترح قاعدة بسيطة في حياتك .هتكس - لا يبدو وحشية لي :)

RewriteCond %{HTTP_HOST} ^www\.foobar\.com$ [NC]
RewriteRule ^(.*)$ http://foobar.com/$1 [L,R=301]
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.domain.com$ [NC]
RewriteRule ^(.*)$ http://domain.com/$1 [R=301,L]

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

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