• عملگرهای بیان منظم پایه

    تصمیم گرفتم تلاش کنم. مشاهدات، کاربرد عملی و حل مسئله را با موضوع سئو و "من یک وبمستر هستم" در رد پای تجربه خودم ارسال خواهم کرد. نمی دانم چقدر طول خواهد کشید، زمان مشخص خواهد کرد.

    مقدمه توضیحی: من متخصص بهینه سازی موتورهای جستجو (SEO) یا برنامه نویس نیستم. همه چیزهایی که در اینجا توضیح داده شده تجربه و ملاحظات بصری یک کاربر کم و بیش پیشرفته است.

    بیشتر: به طور جداگانه، می‌خواهم از کمک قابل استفاده مجدد در بازسازی سایت تشکر کنم :)

    بنابراین، به موضوع

    تغییر مسیر 301: نحوه تغییر مسیر از یک صفحه به صفحه دیگر

    اجرای کار ساده است و من آن را می دانستم، اگرچه بیش از 3 سال از عمر سایت یک بار 301 تغییر مسیر استفاده شده است و نه توسط من. اما روز گذشته عمداً چندین صفحه را از سایت حذف کردم و مجبور شدم Redirect 301 را روی پیوندهای قدیمی (حذف شده) قرار دهم.

    ریدایرکت 301 چیست؟

    "Redirect" به نظر ما "redirection"، "redirection". یعنی چنین کدی است که با آن اطلاع می دهیم که قصد داریم آدرس (URL) صفحه را از محل قبلی به مکان جدید به طور دائم هدایت کنیم. "برای همیشه" را می توان با حذف تغییر مسیر لغو کرد.

    301 - تغییر مسیر دائمی

    302، 303 و 307 - تغییر مسیر موقت

    این برای چیست؟

    یک مثال ساده: شما صفحه ای با محتوا در سایت خود داشتید، آن را حذف کردید، دیگر وجود ندارد، به این معنی که شخصی که (مثلاً از Google یا Yandex) به این صفحه رسیده است "خطای 404" یا "صفحه یافت نشد". یک گزینه بد - شخصی بلافاصله سایت شما را می بندد، یا - تصمیم می گیرد از طریق "جستجو" در سایت شما آنچه را که برای آن آمده است، در صورتی که اصلا وجود داشته باشد، بیابد.

    در هر صورت، دیدن "خطای 404" جالب نیست و موتورهای جستجو حضور انبوه چنین صفحاتی را در سایت به روشی غیر خنده دار در نظر می گیرند - آنها می توانند سایت شما را در نتایج جستجو پایین بیاورند.


    اسکرین شاتاز ویدیو ، که در آن مت کاتز، رئیس تیم وب اسپم گوگل، به این سوال پاسخ می دهد که "با تغییر مسیر 301 چقدر رتبه صفحه از بین می رود؟"

    اما شما نمی توانید بدون حذف صفحات در سایت انجام دهید، این اتفاق می افتد که به دلایل مختلف و به دلایل مختلف آنها باید 301 را قرار دهند.

    چه زمانی وب سایت ها از تغییر مسیر 301 استفاده می کنند؟

    1. برای تغییر مسیر یک صفحه از سایت (لینک) به صفحه دیگر
    2. لینک های سایت با www به لینک های بدون www یا بالعکس هدایت می شوند
    3. در صورت تغییر در دامنه یا موتور سایت، لینک ها را تغییر مسیر دهید

    این موارد اصلی هستند. مورد من اولین مورد است و در حال بررسی آن هستیم.
    این کار به سادگی انجام می شود، اما گزینه ساده برای من کار نکرد، مجبور شدم برای جستجوی گزینه مناسب چند ساعت در گوگل جستجو کنم.

    ایجاد تغییر مسیر 301

    این کار در فایل htaccess. که در پوشه ریشه سایت قرار دارد انجام می شود. آن را باز کنید و تغییر مسیر ما را در آنجا وارد کنید. بلافاصله بعدش نوشتم RewriteBase /

    تغییرات را در htaccess ذخیره کنید. همه. بررسی کنید که آیا پیوند قدیمی (غیرکار) به پیوند جدید هدایت می شود یا خیر.

    این گزینه برای من کار نکرد. نتیجه: هیچ تغییر مسیری وجود نداشت و پارامتر ?q= به آدرس پیوند اضافه شد. در اینجا گزینه ای است که برای من کار کرد. من توضیح می دهم: برای سایتی در دروپال پیاده سازی شده است

    سلام دوستان عزیزم! امروز تصمیم گرفتم مقاله ای در مورد مفهوم "وحشتناک" بنویسم 301 تغییر مسیر. بله، نترسید، در واقع بسیار بسیار ساده است :). در این مقاله به شما خواهم گفت که چیست، چرا به آن نیاز است، چگونه آن را درست کنید، و بسیاری از اطلاعات به همان اندازه مفید دیگر در مورد این موضوع!

    خبر شماره 1

    من علاقه زیادی به سرمایه گذاری در شرکت های مختلف کارگزاری محبوب داشتم. من قبلاً چند مقاله در مورد این موضوع نوشته ام که در آن مقداری پول سرمایه گذاری کرده ام:

  • مقاله در مورد؛
  • مقاله ای در مورد سرمایه گذاری در .
  • در این مقاله ها گفتم کجا و چقدر سرمایه گذاری کرده ام. به زودی با یک شرکت کارگزاری نه چندان سودآور دیگر آشنا خواهید شد، بنابراین انتشار این مقاله را از دست ندهید! درآمد ماهانه از سرمایه گذاری در این شرکت یا بهتر است بگوییم در این برنامه مدیریت اعتماد از 7-40٪.

    و حالا بیایید بفهمیم تغییر مسیر چیست.

    تغییر مسیرانتقال (redirect یا redirect) از یک نام دامنه به نام دامنه دیگر (از یک سایت به سایت دیگر)، از یک صفحه سایت به صفحه دیگر است. آن ها کاربر در خط مرورگر خود یک نام از صفحه یا سایت را تایپ می کند و به یک نام کاملاً متفاوت از صفحه یا سایت می رسد.

    چرا وب مسترها به تغییر مسیر 301 نیاز دارند؟

    در موارد زیر از تغییر مسیر 301 استفاده کنید:

    1. برای چسباندن .

    به یاد داشته باشید، در آخرین مقاله در مورد نامطلوب بودن داشتن یک وب سایت با دامنه www صحبت کردم، زیرا این امر منجر به توزیع مجدد حجم پیوند به دو دامنه می شود و در نتیجه بر رتبه سایت در موتورهای جستجو تأثیر منفی می گذارد.

    2. زمانی که یک سایت به یک دامنه جدید منتقل می شود.این اتفاق می افتد که سایت تحت فیلترهای مختلف موتورهای جستجو قرار می گیرد، ترافیک جستجو کاهش می یابد (یا به طور کلی ناپدید می شود)، بنابراین نیاز به یک دامنه جدید وجود دارد. اما در مورد خوانندگان وبلاگ معمولی چطور؟ در مورد کسانی که وبلاگ شما را نشانه گذاری کرده یا مشترک شده اند چطور؟ این همان چیزی است که تغییر مسیرهای 301 برای آن مفید است.

    3. برای افزایش TCI و روابط عمومی سایت، در ترافیک جستجو صرفه جویی کنید.به عنوان مثال، شما می خواهید روابط عمومی یک سایت خاص (اصلی) را افزایش دهید. برای انجام این کار، باید با puzomerki خوب موجود خریداری کنید و به سایت اصلی تغییر مسیر دهید، سپس TCI، PR و ترافیک جستجو به آن منتقل می شود.

    4. اگر نیاز به تغییر آدرس صفحه دارید.به عنوان مثال، اگر صفحه شما در موتورهای جستجو رتبه بالایی دارد یا ایندکس شده است و نمی خواهید از ایندکس خارج شود، تغییر مسیر 301 همان چیزی است که شما نیاز دارید.

    5. هنگام تغییر از هاست رایگان به پولی.

    همچنین تعدادی کاربرد دیگر برای تغییر مسیر 301 وجود دارد، اما در حال حاضر اجازه دهید روی موارد فوق تمرکز کنیم.

    طبقه بندی تغییر مسیر

    همانطور که گفتم، برای توسعه کلی، یک وب مستر تازه کار باید بداند که غیر از 301 تغییر مسیر، موارد دیگری نیز وجود دارد:

    اما متداول ترین تغییر مسیر 301 است.

    چگونه می توان 301 را از طریق فایل htaccess تغییر مسیر داد؟

    این سوال پیش می آید: فایل چیست htaccess? این فایلی است که در آن دستورات مختلف تغییر مسیر 301 (در مورد تغییر مسیر صفحه، دامنه و غیره) ذخیره می شود.

    واقعیت این است که شما نمی توانید آن را در رایانه به روش معمول تغییر نام دهید ، یک خطا ایجاد می شود (برای من) ، اما با کمک برنامه های فوق قطعاً می توانید.

    و حالا فایل را باز کنید (با استفاده از ویرایشگر متن) و موارد لازم را وارد کنید کد تغییر مسیر

    اگر می خواهید بازدیدکنندگان را از یک سایت به سایت دیگر بفرستید

    تغییر مسیر 301 / http://www.domain.com

    تغییر مسیر 301 - نشان می دهد که سایت منتقل شده است.

    "/" - نشان می‌دهد که همه چیز از سطح بالای وبلاگ به دامنه جدید منتقل می‌شود.

    به عنوان مثال، اگر می خواهید از یک صفحه از سایت به صفحه دیگری از سایت تغییر مسیر دهید، سپس در فایل htaccess. باید کد زیر را بچسبانید:

    تغییر مسیر 301 /old-page.html http://new-domain.ru/new-page.html
    یا
    تغییر مسیر /old-page.html دائمی http://new-domain.ru/new-page.html

    RedirectPermanent /old-page.html http://new-domain.ru/new-page.html

    تغییر مسیر با استفاده از دستورالعمل RedirectMatch

    این تغییر مسیر تقریباً مشابه قبلی است، اما در اینجا می توانید یک عبارت معمولی برای موارد قدیمی تنظیم کنید، به عنوان مثال، هنگام تغییر CMS از PHP به ASP، کد ریدایرکت به این صورت خواهد بود:

    RedirectMatch /(.*)\.php$ /$1.aspx

    تغییر مسیر 301 از دامنه دارای www به دامنه بدون www

    بازنویسی موتور روشن است
    RewriteCond %(HTTP_HOST) ^www.site.ru$
    RewriteRule ^(.*)$ http://site.ru/$1

    تغییر مسیر 301 از دامنه بدون www به دامنه با www

    بازنویسی موتور روشن
    RewriteCond %(HTTP_HOST) ^site\ .ru$
    RewriteRule (.*) http://www.site.ru/$1

    RewriteEngine روشن|خاموش- این یک دستورالعمل ویژه است که برای غیرفعال کردن یا فعال کردن دسترسی به کد فایل htaccess است، دسترسی از طریق ماژول میزبانی mod_rewrite انجام می شود.

    RewriteCondیک دستورالعمل ویژه است که شرایط را برای قوانین تبدیل تعریف می کند. یک دستورالعمل ماژول میزبانی mod_rewrite است.

    RewriteRuleدستورالعملی است که مسئولیت تحولات مختلف را بر عهده دارد. در این مورد، یک تغییر مسیر 301.

    ابتدا اطلاعات مربوط به صفحه وارد دایرکتیو RewriteCond می شود و پس از آن این اطلاعات به دایرکتیو RewriteRule تبدیل می شود. به طور خلاصه کد بالا به این صورت است.

    بله، درک اطلاعات (در ابتدا) دشوار است، اما اگر به آن تسلط داشته باشید، در آینده بسیار آسان تر خواهد بود.

    و در این مقاله پایان می دهم، خداحافظ همه!

    P.S.

    با احترام، الکساندر سرجینکو

    کد پاسخ 301 (Moved Permanently) به این معنی است که سند درخواستی اکنون به طور دائم در آدرس جدید در دسترس است. تغییر مسیر 301 ممکن است در چندین مورد مورد نیاز باشد: انتقال به دامنه جدید، تغییر آدرس صفحه یا . اهداف این رویدادها کاملاً شفاف است:

    • انتقال معیارهای قدیمی به صفحه یا دامنه جدید.
    • لینک های شکسته، خارجی و داخلی را حذف کنید.
    • حذف صفحات تکراری

    راه های مختلفی برای ایجاد تغییر مسیر 301 وجود دارد، اما گزینه ترجیحی من استفاده از فایل .htaccess است که در پوشه ریشه FTP سایت شما قرار دارد (اگر آنجا نیست، فقط آن را ایجاد کنید، پسوندی ندارد).

    راه اندازی 301 تغییر مسیر از صفحه ای به صفحه دیگر

    اغلب اوقات، زمانی پیش می‌آید که یک صفحه سایت حذف شده یا مجبور به تغییر URL خود شده است. هنگام دسترسی به آدرس قدیمی خود، کاربر، البته، صفحه خطای 404 را مشاهده می کند (یافت نشد).

    اگر صفحه بی اهمیت است، پس ارزش آزار دادن ندارد، اما اگر بازدیدکنندگان سایت اغلب به آن دسترسی دارند (و شاید توسط شخصی نشانه گذاری شده باشد)، اگر لینک های خارجی که تحت کنترل شما نیستند یا برعکس، لینک های داخلی تحت کنترل شما هستند. منجر به آن شود، اما در چنین حجم هایی که واقعاً می خواهید آنها را ویرایش کنید، سپس راه اندازی یک تغییر مسیر 301 از صفحه قدیمی به صفحه جدید راه حل ایده آل برای شما خواهد بود.

    همچنین می توان از آن برای مقابله با صفحات تکراری استفاده کرد. به طور کلی باید کتابی با موضوع "99 روش استفاده از Redirect 301" بنویسید. در اینجا نحو آن است:

    تغییر مسیر 301 /old-page.html http://new-domain.ru/new-page.html

    یا بهتر است، نتیجه یکسان خواهد بود:

    تغییر مسیر /old-page.html دائمی http://new-domain.ru/new-page.html

    توضیح می دهم: /old-page.html - آدرس نسبی صفحه قدیمی. می توان آن را تودرتو کرد: /old-category/old-page.html، یا مانند این: /old-category/old-page/ - هیچ محدودیتی در اینجا وجود ندارد. همین امر در مورد http://new-domain.ru/new-page.html (صفحه جدید) صدق می کند، تنها با این تفاوت که مسیر در اینجا مطلق است (لازم نیست دامنه جدیدی باشد - فقط می تواند یک دامنه باشد. آدرس صفحه داخلی جدید).

    تنظیم ریدایرکت 301 هنگام انتقال سایت به دامنه جدید

    وضعیت کمتر قابل درک نیست. نیاز به حرکت به یک دامنه جدید با حفظ شاخص های قبلی (، PR) وجود داشت. در این صورت موارد زیر را به .htaccess دامنه قدیمی اضافه کنید:

    Options +FollowSymLinks
    بازنویسی موتور روشن است

    بازنویسی موتور خاموش

    RewriteCond %(HTTP_HOST) ^old-domain\.ru
    RewriteRule ^(.*)$ http://new-domain.ru/$1
    RewriteCond %(HTTP_HOST) ^www.oldsite\.ru
    RewriteRule ^(.*)$ http://old-domain.ru/$1

    در این مثال، ما یک تغییر مسیر از تمام صفحات دامنه قدیمی را به صفحات دامنه جدید تنظیم می کنیم (به شرطی که آدرس های نسبی آنها مطابقت داشته باشد). در عین حال فایل robots.txt را بدون ریدایرکت در دامنه قدیمی گذاشتیم تا فرآیند انتقال کاملتر شود. در آن می نویسیم:

    عامل کاربر: *
    غیر مجاز:
    میزبان: newsite.ru
    نقشه سایت: http://newsite.ru/sitemap.xml

    خب ما یکی دو ماه منتظریم تا انتقال دامنه اعتبار داده بشه و همه مشخصات منتقل بشه.

    چسباندن آینه های سایت: 301 تغییر مسیر از www به بدون www و بالعکس

    چندین گزینه برای دسترسی به سایت وجود دارد - با www و بدون www (به عنوان مثال، سایت و www.site). کاربر اهمیتی نمی‌دهد که دقیقاً چگونه URL را وارد کند، زیرا به هر حال در همان صفحه قرار می‌گیرد. وضعیت در مورد موتورهای جستجو متفاوت است. آنها www.site.ru و site.ru را به عنوان دو دامنه کاملاً متفاوت (که از اعماق تاریخ وب جهانی، زمانی که واقعاً بود) در نظر می گیرند.

    این موارد تکراری در نمایه سازی و ارتقای سایت به طور کلی اختلال ایجاد می کند، زیرا اولاً این صفحات تکراری پیش پا افتاده هستند (بابت تکرار عذرخواهی می کنم) و ثانیاً لینک های ورودی نیز در سبدهای مختلف قرار می گیرند. همین امر در مورد موارد تکراری صفحه اصلی صدق می کند: site.ru، site.ru/index.html، site.ru/index.php، و غیره. به همین دلیل، حتی در مرحله ایجاد سایت، بهتر است به این موضوع رسیدگی شود و یکی از نسخه های سایت (مثلاً از www) به دیگری (مثلاً بدون www) هدایت شود. اگر لحظه از دست رفت، پس جای نگرانی نیست.

    روند ادغام آینه ها با استفاده از تغییر مسیرهای 301 را مرحله به مرحله در نظر بگیرید.

    1. دامنه اصلی انتخاب شده برای نمایه سازی توسط موتورهای جستجو را تعیین کنید.

    آینه اصلی را می توان به راحتی با نتایج Yandex و . نام دامنه را وارد کنید و ببینید کدام آدرس نمایش داده می شود: www.site.ru یا site.ru. اگر سایت هنوز ایندکس نشده است، آن را به صلاحدید خود انتخاب کنید. اگر دامنه های اصلی در گوگل و یاندکس متفاوت است، بهتر است Yandex را ترک کنید.

    2. ریدایرکت 301 را در htaccess ثبت می کنیم.

    فایل htaccess را در روت سایت FTP پیدا می کنیم و دانلود می کنیم و در notepad باز می کنیم و سپس تغییرات لازم را روی آن اعمال می کنیم. گزینه اول تغییر مسیر دامنه 301 بدون www به با www است:

    Options +FollowSymLinks
    بازنویسی موتور روشن

    بازنویسی موتور خاموش

    RewriteCond %(HTTP_HOST) ^site.ru$
    RewriteRule (.*) http://www.site.ru/$1

    وضعیت معکوس - از www به بدون www:

    Options +FollowSymLinks
    بازنویسی موتور روشن

    بازنویسی موتور خاموش

    RewriteCond %(HTTP_HOST) ^www.site.ru$
    RewriteRule (.*) http://site.ru/$1

    پس از اتمام ویرایش، فایل را ذخیره کرده و با رونویسی در پوشه ریشه FTP آپلود کنید.

    در صورت تمایل، می توانید بلافاصله از تکرارهای صفحه اصلی نماهای index.php و index.html مراقبت کنید، کد زیر را اضافه کنید:


    RewriteRule ^index\.html$ http://www.site.ru/

    RewriteRule ^index\.php$ http://www.site.ru/

    خوب، دوباره، اگر سایت.ru دارید:

    RewriteCond %(THE_REQUEST) ^(3,9)\ /index\.html\ HTTP/
    RewriteRule ^index\.html$ http://site.ru/
    RewriteCond %(THE_REQUEST) ^(3,9)\ /index\.php\ HTTP/
    RewriteRule ^index\.php$ http://site.ru/

    3. راه اندازی robots.txt

    دستورالعمل آشنا را می بینید که robots.txt را دست نخورده می گذارد؟ درست است، ما تغییری در robots.txt ایجاد می کنیم:

    میزبان: main-mirror.ru

    4. بررسی سایت.

    ما آدرسی را وارد می کنیم که از آنجا تغییر مسیر را قرار داده ایم، به عنوان مثال www.site.ru یا site.ru/index.html، و اگر هنگام وارد کردن آن به site.ru بروید، همه چیز به درستی تنظیم شده است.

    5. راه اندازی Yandex و Google webmaster.

    علاوه بر این، تنظیمات مناسب را به صورت شخصی اعمال کنید. در مورد Yandex:

    خوب، برای گوگل:

    به نظر همه چیز همین است. موفق باشید و اگر سوالی دارید در نظرات بنویسید.

    اغلب در توسعه وب، شما باید از یک صفحه (به عنوان مثال، قدیمی) به صفحه دیگر تغییر مسیر دهید. در عین حال، تغییر مسیر را می توان با روش های مختلفی انجام داد - هم با کاهش وزن صفحه و هم بدون آن. اما بیشتر در مورد آن.

    همانطور که می دانید هر صفحه ای در طول زمان ایندکس می شود و وزن خاص خود را در شبکه دارد. اگر صفحه نامربوط شود، البته، می توان آن را حذف کرد، اما کاربرانی که آن را دنبال کرده اند، به قسمتی از سایت می رسند که وجود ندارد و در نهایت آن را ترک می کنند. انجام 301 تغییر مسیر به بخش های مربوطه سایت در چنین صفحاتی صحیح تر است. اولاً کاربر خطا را مشاهده نمی کند و وزن صفحه قدیمی به طور کامل به صفحه جدید منتقل می شود.

    تغییر مسیر صفحه را می توان به روش های مختلفی انجام داد. بیایید موارد اصلی را در نظر بگیریم.

    تغییر مسیر 301 از طریق htaccess

    در ریشه سایت شما یک فایل وجود دارد (اگر وجود ندارد، آن را ایجاد کنید) به نام htaccess. آن را برای ویرایش باز کنید و از یکی از روش های زیر استفاده کنید.

    Redirect دائمی و Redirect 301 - به راحتی 301 تغییر مسیر از یک صفحه به صفحه دیگر (یا سایت) انجام دهید. اولی لینک سایت قدیمی (توجه - بدون دامنه)، دومی پیوند به یک صفحه جدید (که می تواند همان سایت یا حتی جدید باشد).

    مثال ها:
    تغییر مسیر دائمی / staraya-stranica.php http://newsait.ru/novaya-stranica.php
    (در اینجا ما به سادگی از صفحه قدیمی به صفحه جدید تغییر مسیر می دهیم)

    تغییر مسیر 301 / http://newsait.ru/
    (در اینجا / به این معنی است که همه چیزهایی که از صفحه اصلی سایت شروع می شود و همه زیر صفحه های آن (زیر دایرکتوری ها) به دامنه جدید هدایت می شوند؛ یعنی در واقع از این دامنه به دامنه دیگر هدایت می شوند.)

    تغییر مسیر RewriteRule یک تغییر مسیر پیچیده تر از گزینه های قبلی است. برای عملکرد صحیح نیاز به اتصال ماژول mod_rewrite در هاست دارد (معمولا همیشه فعال است). اغلب از این روش برای تغییر مسیر صفحات از www به همان بدون www و بالعکس استفاده می شود. آنها را در نظر بگیرید:

    تغییر مسیر دامنه از www به غیر www
    Options +FollowSymLinks
    بازنویسی موتور روشن
    RewriteCond %(HTTP_HOST) ^www\.(.*)
    RewriteRule ^(.*)$ http://%1/$1

    تغییر مسیر از غیر www به دامنه با www
    بازنویسی موتور روشن
    RewriteCond %(HTTP_HOST) !^www\.(.*)
    RewriteRule ^(.*)$ http://www.%1/$1

    تغییر مسیر 301 از دامنه به دامنه و یک استثنا برای پیوند /market/vm2_market.xml. آن ها همه درخواست ها (به جز /market/vm2_market.xml) از دامنه قدیمی به دامنه جدید اجرا می شوند.

    بازنویسی موتور روشن است

    301 همه درخواست‌ها (به جز /market/vm2_market.xml و پیوند متن‌های / (و همه «پیوندهای فرعی» آن)) از دامنه قدیمی به دامنه جدید برآورده می‌شوند. همچنین، قانون تغییر مسیر برای یک زیر پیوند خاص در اینجا کار می کند (RedirectMatch 301)

    بازنویسی موتور روشن است
    RedirectMatch 301 ^/texts/data/msg/(.*)\.png$ http://olddomen.ru/texts/data/rimage/msg.php?id=$1
    RewriteCond %(REQUEST_URI) !^/texts*
    RewriteCond %(REQUEST_URI) !^/market/vm2_market.xml$
    RewriteRule ^(.*)$ http://newdomen.ru/$1

    RedirectMatch 301 یکی دیگر از روش های ریدایرکت خوب است، مشابه Redirect 301 اما با عملکرد بیشتر. یعنی می توان از آن برای ایجاد تغییر مسیر بر اساس عبارات منظم استفاده کرد.

    مثال ها:
    RedirectMatch 301 ^/olddirectory/ http://website/newdirectory/
    (در اینجا کل دایرکتوری را به فهرست جدید هدایت می کند)

    RedirectMatch 301 ^(.*)$ http://website
    (با ریدایرکت 301 همه صفحات را از دامنه قدیمی به دامنه جدید هدایت می کند (وزن به سایت جدید نیز منتقل می شود))

    RedirectMatch 301 (.*)\..php
    (تغییر صفحات از پسوند html به پسوند php)

    RedirectMatch 301 /dirA/(.*)\..php
    (تنها هنگام دسترسی به اسکریپت های PHP باعث تغییر مسیر از dirA به dirB می شود.
    .php -> http://site/dirB/page.php - کار خواهد کرد
    http://site/dirB/page.html - کار نخواهد کرد)

    نحو برای عبارات منظم
    . - نقطه جایگزین یک کاراکتر دلخواه می شود.
    - فهرستی از کاراکترها را نشان می دهد که با حروف a، b یا c مطابقت دارند.
    [^abc] - لیستی از کاراکترهایی که در محدوده مشخص شده قرار ندارند. با هر کاراکتری به جز a، b یا c مطابقت دارد.
    * - به این معنی است که کاراکتر قبلی را می توان (0 یا بیشتر بار) تکرار کرد.
    * - دستور کاراکترهای متوالی را از مجموعه مشخص شده پیدا می کند.
    [^abc]* - دقیقاً برعکس.

    .* - کاملاً جایگزین هر مجموعه شخصیتی می شود. ".*" - تمام رشته های فرعی بین نقل قول ها را پیدا می کند.
    ^ - ابتدای یک رشته (اگر در ابتدای عبارت استفاده شود).
    $ - پایان خط را نشان می دهد.

    \w - حرف، عدد یا خط زیر _.
    \d - جایگزین هر رقمی می شود.
    \D - جایگزین هر کاراکتری می شود، اما نه یک عدد.
    - جایگزین هر عددی می شود.
    - هر حرفی از a تا z (کل مجموعه حروف لاتین) با حروف کوچک.
    - هر حرف از A تا Z در حروف UPPER.
    - هر حرفی از a تا Z در هر صورت.
    - همینطور

    کاراکترهای خاص مورد استفاده در قوانین و معانی آنها.
    ^ - شخصیت ویژه ابتدای خط؛
    $ - کاراکتر ویژه پایان خط.
    ! - شخصیت خاص نفی;
    . - نقطه، جایگزین هر کاراکتری می شود، اما فقط یک.
    () - گروه بندی؛
    \ - اسلش "فرار"، کاراکتر بعدی بعد از آن یک کاراکتر معمولی در نظر گرفته می شود، نه یک کاراکتر خاص.

    اصلاح‌کننده‌ها بعد از کاراکترهای معمولی، خاص یا گروه‌های آنها استفاده می‌شوند و به شما امکان می‌دهند تا امکانات قالب‌ها را برای راه‌اندازی قوانین گسترش دهید.
    ? - کاراکتر 0 یا 1 بار تکرار می شود.
    + - از 1 تا 65536 بار تکرار می شود.
    * - از 0 تا 65536 بار تکرار می شود.

    پرچم، تنظیم اضافی. گزینه هایی برای استفاده از قانون آنها در کروشه های مربعی که با کاما از هم جدا شده اند، فهرست شده اند.
    NC - پرچم NoCase، که بررسی حروف کوچک و بزرگ کاراکترها را در هنگام راه‌اندازی قانون غیرفعال می‌کند.
    R - flag Redirect، فرآیند توقف تغییر URL را انجام می دهد و نتیجه را برمی گرداند. رایج ترین مقدار استفاده شده R=301 است، اما مقادیر دیگری برای تغییر مسیرهای موقت امکان پذیر است (302، MOVED TEMPORARY).
    L - پرچم Last، تشکیل URL را متوقف می کند و خط نهایی در نظر گرفته می شود.

    تغییر مسیر از طریق php. اگر یک صفحه php معمولی دارید که باید به یک آدرس جدید هدایت شود، می توانید بدون htaccess.

    مثال:

    تغییر مسیر از طریق جاوا اسکریپت. همچنین می توانید با استفاده از جاوا اسکریپت معمولی (البته بدون عبور از وزن صفحه) تغییر مسیر دهید.

    مثال:
    window.location="http://site/category/";
    (ریدایرکت منظم به صفحه سایت)
    alert ("اکنون هدایت می شوید!"); window.location="http://site/category/";
    (معمولاً به صفحه سایتی که قبل از آن پیامی به کاربر نشان داده می شود تغییر مسیر دهید)

    کد خطای 301 (Moved Permanently) به این معنی است که این صفحه یا کل سایت به طور دائم به یک URL دائمی جدید منتقل شده است. برای عبور وزن مرجع استفاده می شود. هنگام تنظیم این ریدایرکت حتما بررسی کنید که سرور چه کد خطایی می دهد. من برای مثال از افزونه فوق العاده Firebug برای فایرفاکس استفاده می کنم.

    تنظیم ریدایرکت های 301، اگر وب سرور لینوکس آپاچی دارید، در فایل htaccess. رخ می دهد. و در مورد وب سرور ویندوز IIS، این فایل web.config خواهد بود.

    تغییر مسیر 301 در CMS های مختلف مانند wordpress، bitrix، drupal، dle، modx، joomla، opencart و غیره، با استفاده از پلاگین های خاص و همچنین به روش معمول از طریق htaccess یا پیکربندی وب پیکربندی می شود.

    عملگرهای بیان منظم پایه

    قبل از تنظیم ریدایرکت های صحیح 301 در فایل htaccess.، باید به وضوح بین عملگرهای عبارت منظم اصلی (کاراکترهای خاص، اصلاح کننده ها، پرچم ها) تمایز قائل شوید:

    شخصیت های خاص:

    • ^ - محدودیت در سمت چپ (ابتدای خط)؛
    • $ - محدودیت در سمت راست (انتهای خط)؛
    • . - هر شخصیت؛
    • () یک متغیر است.
    • \ - فرار (کاراکتر بعد از \ عادی در نظر گرفته می شود، نه یک کاراکتر خاص).
    • - محدوده مقادیر؛
    • ! - شخصیت ویژه نفی؛

    اصلاح کننده ها:

    • ? - شخصیت 0 یا 1 بار تکرار می شود.
    • + - 1 یا بیشتر کاراکتر (تا 65536)؛
    • * - 0 یا بیشتر کاراکتر (تا 65536)؛
    راه اندازی 301 تغییر مسیر در فایل های htaccess و web.config

    من فقط نسخه‌های آزمایش شده و تکمیل‌شده فنی 301 ریدایرکت‌ها را اینجا پست می‌کنم. پایگاه داده انواع کاری 301 تغییر مسیر دوباره پر می شود.
    تغییر مسیر از صفحه استاتیک قدیمی (cnc) به صفحه جدید:

    RewriteEngine در RewriteCond %(HTTP_HOST) ^www\.seowind\.ru$ RewriteRule ^baza-znanij-seo/nastrojka-301-redirekta/$ https://www.site/newpage/

    تغییر مسیر به صفحه اصلی:

    RewriteEngine در RewriteCond %(HTTP_HOST) ^www\.seowind\.ru$ RewriteRule ^baza-znanij-seo/nastrojka-301-redirekta/$ https://www.site/

    تغییر مسیر از صفحه اصلی به صفحه داخلی:

    RewriteEngine در RewriteCond %(HTTP_HOST) ^www\.seowind\.ru$ RewriteRule ^$ https://www.site/baza-znanij-seo/nastrojka-301-redirekta/

    تغییر مسیر از صفحات سایت دارای WWW به صفحات بدون WWW:

    RewriteEngine در RewriteCond %(HTTP_HOST) ^www\.seowind\.ru$ RewriteCond %(REQUEST_URI) !^/robots.* RewriteRule ^(.*)$ http://site/$1

    تغییر مسیر از صفحات سایت بدون WWW به صفحات دارای WWW:

    RewriteEngine در RewriteCond %(HTTP_HOST) ^seowind\.ru$ RewriteCond %(REQUEST_URI) !^/robots.* RewriteRule ^(.*)$ https://www.site/$1

    مثال زیر به شما امکان می دهد اسلش انتهای url را حذف کنید.

    تغییر مسیر 301 از صفحات دارای اسلش در پایان به صفحات بدون آن:

    RewriteCond %(REQUEST_FILENAME) !-d RewriteCond %(REQUEST_URI) ^(.+)/$ RewriteRule ^(.+)/$ /$1

    و در اینجا یک اسلش به انتهای آدرس اضافه می کنیم:

    RewriteCond %(REQUEST_FILENAME) !-f RewriteCond %(REQUEST_URI) !(.*)/$ RewriteRule ^(.*[^/])$1/

    تغییر مسیر 301 از index.php به صفحه اصلی:

    RewriteEngine در RewriteCond %(THE_REQUEST) ^(3,9)\ /index\.php\ HTTP/ RewriteRule ^index\.php$ https://www.website/

    همه صفحات داخلی را به صفحه اصلی هدایت کنید:

    RewriteEngine در RewriteCond %(ENV:REDIRECT_STATUS) ^$ RewriteRule !(^$|.*\.(css|jpg|gif)) /

    URL با یک پارامتر به هر صفحه داخلی سایت هدایت می شود: (به عنوان مثال، از صفحه http://www.site.ru/news.php?category=1 به http://www.site.ru/news. php?category=2 (در اینجا پارامتر دسته=)):

    RewriteEngine On RewriteCond %(QUERY_STRING) category=1 RewriteRule ^news.php http://www.site.ru/news.php?category=2

    URL با یک پارامتر به صفحه اصلی سایت هدایت می شود: (به عنوان مثال http://site.ru/index.php?show_section=12 به صفحه اصلی http://site.ru/ (در اینجا پارامتر show_section است =12)):

    RewriteEngine در RewriteCond %(QUERY_STRING) show_section=12 RewriteRule ^index.php http://site.ru/?

    تغییر مسیر از دامنه قدیمی به دامنه جدید (آن را در htaccess سایت قدیمی می نویسیم):

    RewriteEngine در RewriteCond %(HTTP_HOST) ^www\.siteold\.ru$ RewriteRule ^(.*)$ http://sitenew.ru/$1 RewriteCond %(HTTP_HOST) ^siteold\.ru$ RewriteRule ^(.*)$ http://sitenew.ru/$1

    تغییر مسیر از دامنه RF به دامنه RU. در اینجا مهم است که بدانید منطقه RF به xn.--p1ai تبدیل می شود و نام دامنه سیریلیک به کد مربوطه (punycode) در لاتین xn-… تبدیل می شود.

    RewriteCond %(HTTP_HOST) ^xn-...\.xn--p1ai$ RewriteRule ^(.*)$ https://www.site/$1

    تغییر مسیر دایرکتوری 301:

    RewriteRule ^(.*)/old-catalog/(.*)$1$/new-catalog/$2

    احتمالاً در عمل خود با موردی برخورد کرده اید که 2 سایت با اطلاعات یکسان، اما همزمان در آدرس های مختلف (سایت های تکراری) در دسترس هستند. این سایت ها دارای همان robots.txt، sitemap.xml و one for two.htaccess هستند. من یک نوع تغییر مسیر 301 را از یک چنین سایت غیر اصلی (site2) به سایت اصلی (site1) پیشنهاد می کنم:

    RewriteEngine در RewriteCond %(HTTP_HOST) ^site2.ru$ RewriteCond %(HTTP_HOST) ^www.site2.ru$ RewriteCond %(REQUEST_URI) !^/robots.* RewriteRule ^(.*)$ http://www.site1. رو/1 دلار

    یک درج که شامل تمام تغییر مسیرها از صفحات index|پیش فرض با پسوندهای htm|html|php|asp|aspx به صفحه اصلی است:

    RewriteEngine در RewriteCond %(THE_REQUEST) ^GET\ .*/(index|default)\.(htm|html|php|asp|aspx)\ HTTP RewriteRule ^(.*)(index|default)\.(htm|html |php|asp|aspx)$ http://www.site.ru/$1

    مثالی از تغییر مسیر از صفحات بدون WWW به صفحات دارای WWW در web.config برای IIS:

    نمونه ای از تغییر مسیر از صفحه default.aspx به صفحه اصلی در web.config برای IIS: