سؤال

أحاول إعادة توجيه موقعي بأكمله إلى غير WWW

هنا هو رمز HTACCESS الذي أستخدمه

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

# no www
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.akorra\.com$ [NC]
RewriteRule ^.*$ http://akorra.com%{REQUEST_URI} [R=301,L]

أيه أفكار

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

المحلول

أعتقد أن قواعدك تحتاج إلى علامات الوحدة النمطية.

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

# no www
RewriteCond %{HTTP_HOST} ^www\.akorra\.com$ [NC]
RewriteRule ^.*$ http://akorra.com%{REQUEST_URI} [R=301,L]

# BEGIN WordPress
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress

</IfModule>

نصائح أخرى

إليك ما تحتاج إلى إضافته إلى .htaccess

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

ومع ذلك ، إذا كنت تعمل مع WordPress كمحرك يعمل على تشغيل موقعك بالكامل ، فما عليك سوى تحديث بنية الرابط الثابت وجميع الإعدادات الداخلية باستخدام اسم المجال الخاص بك لإزالة www.

تعديل:

اعتقدت أن ذلك كان مختلفًا عندما كتبت الإجابة آسف. حاول تحريك قاعدة غير WWW الخاصة بك إلى الأعلى ...

# no www
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.akorra\.com$ [NC]
RewriteRule ^.*$ http://akorra.com%{REQUEST_URI} [R=301s,L]

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

مرة أخرى ضع في اعتبارك إذا تم تعيين WordPress لإنتاج روابط مع أ www بعد ذلك ، لن يمنعه شيء من العودة إلى كل شيء إلى WWW حتى مع قاعدة إعادة الكتابة الصحيحة.

المزيد من تفاصيل WordPress:

تحقق من الإعدادات في wp/wp-admin/options-general.php ...

  • تأكد من إزالة www في WordPress address (URL)
  • تأكد من إزالة www في Blog address (URL)

ثم قم بتحديث بنية prepalink الخاصة بك في wp-admin/options-permalink.php لذلك تنعكس التغييرات.

بعد كل ما يقال وفعل ، تأكد من أن WordPress لم يكتب رمزًا جديدًا في .htaccess ملف.

مرحبًا ، أعتقد أنك بحاجة إلى ضبط البرنامج النصي الخاص بك على النحو التالي لإعادة كتابة العمل:

Options +FollowSymlinks
RewriteEngine on

أعتقد أنه يجب إدراج Symlinks المتابعة على الإطلاق لإعادة كتابة عنوان URL للعمل بشكل صحيح.

المزيد من النصائح حول mod_rewrite هنا:

http://www.askapache.com/htaccess/mod_rewrite-tips-and-tricks.html

روب

RewriteEngine On
RewriteBase /

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

# WordPres
RewriteCond %{REQUEST_URI} ^/[^\.]+[^/]$
RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1/ [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

هذا يجب أن يعمل

أقترح استخدام هذا الكود لإزالة WWW من موقع الويب الخاص بك:

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

إنه أكثر عاما.

وفي مثالك ، من الأفضل استخدام هذا:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /

    # no www
    RewriteCond %{HTTPS} !=on
    RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
    RewriteRule ^ http://%1%{REQUEST_URI} [R=301,L]

    # BEGIN WordPress
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
    # END WordPress
</IfModule>
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top