מכונת DIY CNC הוראות שלב אחר שלב. מכונת כרסום CNC בבית (מוסך)

  • 07.10.2023

החלטתי לכתוב את הפתק הזה כי נמאס לי לענות על אותו הדבר 100,500 פעמים בשאלות ותשובות.

מתכנתי אינטרנט מתחילים רבים מתמודדים במוקדם או במאוחר עם המשימה של הכנסת קישורים קריאים לאדם (HUR) לאתר שלהם. לפני היישום של CNC, כל הקישורים נראו כמו /myscript.php או אפילו /myfolder/myfolder2/myscript3.php, דבר שקשה לזכור ואף גרוע יותר עבור SEO. לאחר היישום של CNC, הקישורים לובשים את הצורה /statiya-o-php או אפילו בקירילית /article-o-php.

אם כבר מדברים על SEO. קישורים הניתנים לקריאה אנושית הומצאו באמת לא בשביל שינון קל, אלא בעיקר כדי להגביר את יכולת האינדקס של האתר, כי צירוף המקרים של שאילתת החיפוש וחלק מה-URL נותן יתרון טוב בדירוג החיפוש.

ההתפתחות של מתכנת PHP מתחיל יכולה להתבטא ברצף השלבים הבא:

  1. הצבת קוד PHP רגיל בקבצים נפרדים וגישה לקבצים אלה דרך קישורים כמו /myfolder/myscript.php
  2. הבנה שלכל הסקריפטים יש חלק משמעותי במשותף (לדוגמה, יצירת חיבור למסד הנתונים, קריאת התצורה, התחלת סשן וכו') וכתוצאה מכך, יצירת נקודת "כניסה" משותפת להתחלה, סקריפט כלשהו מקבל את כל הבקשות, ולאחר מכן בוחר איזה סקריפט פנימי מחבר. בדרך כלל סקריפט זה נקרא index.php והוא נמצא בשורש, וכתוצאה מכך כל הבקשות (המכונה גם כתובות URL) נראות כך: /index.php?com=myaction&com2=mysubaction
  3. הצורך ביישום נתב והמעבר לקישורים הניתנים לקריאה אנושית.

אני מציין שבין נקודות 2 ל-3, רוב המתכנתים עושים טעות ברורה. אני לא אטעה אם אקרא לזה בערך של 95% מהמתכנתים. אפילו רוב המסגרות הידועות מכילות שגיאה זו. והוא מורכב מהבאים.

במקום ליישם דרך חדשה ביסודה של עיבוד קישורים, המושג "טלאים והפניות מחדש" המבוסס על .htaccess נוצר בטעות, המורכב מיצירת כללי הפניה רבים באמצעות mod_rewrite. שורות אלו משווים את כתובת ה-URL עם ביטוי רגולרי כלשהו, ​​ואם יש התאמה, דחפו את הערכים שחולצו מכתובת ה-URL לתוך משתני GET, ובהמשך קוראים לאותו index.php.

#שיטת CNC שגויה RewriteEngine On RewriteRule ^\/users\/(.+)$ index.php?module=users&id=$1 #....עוד הרבה כללים דומים...

למושג זה חסרונות רבים. אחד מהם הוא הקושי ביצירת כללים, אחוז גדול של טעויות אנוש בעת הוספת כללים שקשה לזהות, אך הם מובילים לשגיאת שרת 500.

חיסרון נוסף הוא שלעתים קרובות הוא נערך על סמך תצורת השרת, וזה כשלעצמו שטויות. ואם ב-Apache ניתן "לתקן" את התצורה באמצעות .htaccess, אז ב-nginx הפופולרי אין אפשרות כזו, הכל ממוקם בקובץ תצורה נפוץ באזור המערכת.

ועוד חיסרון אחד, כנראה החשוב ביותר, הוא שבגישה זו אי אפשר להגדיר באופן דינמי את הנתב, כלומר "בתנועה", לשנות ולהרחיב באופן אלגוריתמי את הכללים לבחירת הסקריפט הרצוי.

השיטה המוצעת להלן מבטלת את כל החסרונות הללו. הוא כבר בשימוש במספר רב של מסגרות מודרניות.

השורה התחתונה היא שהבקשה הראשונית מאוחסנת תמיד במשתנה $_SERVER['REQUEST_URI'], כלומר, ניתן לקרוא אותה בתוך index.php ולנתח אותה כמחרוזת באמצעות PHP עם כל טיפול בשגיאות, הפניות דינמיות וכו'.

במקרה זה, ניתן ליצור רק כלל סטטי אחד בקובץ התצורה, אשר יפנה את כל הבקשות לקבצים או תיקיות שאינם קיימים אל index.php.

RewriteEngine On RewriteCond %(REQUEST_FILENAME) !-f #אם הקובץ אינו קיים RewriteCond %(REQUEST_FILENAME) !-d #ואם התיקיה לא קיימת RewriteRule ^.*$ index.php

יתרה מכך, את הכלל הזה ניתן למקם גם ב-.htaccess וגם בקובץ התצורה הראשי של Apache.

עבור nginx, הכלל המתאים ייראה כך:

מיקום / ( if (!-e $request_filename) ( שכתוב ^/(.*)$ /index.php last; ) )

זה פשוט.

עכשיו בואו נסתכל על פיסת קוד PHP ב-index.php, שמנתח קישורים ומחליט איזה סקריפט להפעיל.

/part1/part2/part3

הדבר הראשון שעולה בראש הוא לפרק אותו באמצעות explode('/', $uri) וליצור נתב מורכב המבוסס על מתג/מקרה שמנתח כל חלק מהבקשה. אל תעשה זאת! זה מסובך ובסופו של דבר גורם לקוד להיראות נורא לא מובן ולא ניתן להגדרה!

אני מציע דרך תמציתית יותר. עדיף לא לתאר את זה במילים, אלא להראות מיד את הקוד.

"page404.php", // עמוד 404"/" => "mainpage.php", // עמוד ראשי "/news" => "newspage.php", // חדשות - עמוד ללא פרמטרים "/stories(/+)?" => "storypage.php", // עם פרמטר מספרי // חוקים נוספים); // מחלקת קוד הנתב uSitemap ( public $title = ""; public $params = null; public $classname = ""; public $data = null; public $request_uri = ""; public $url_info = array(); public $ found = false; פונקציה __construct() ( $this->mapClassName(); ) פונקציה mapClassName() ( $this->classname = ""; $this->title = ""; $this->params = null; $ map = &$GLOBALS["sitemap"]; $this->request_uri = parse_url($_SERVER["REQUEST_URI"], PHP_URL_PATH); $this->url_info = parse_url($this->request_uri); $uri = urldecode( $this->url_info["path"]); $data = false; foreach ($map as $term => $dd) ( $match = array(); $i = preg_match("@^".$term. "$@Uu", $uri, $match); if ($i > 0) ( // קבל את שם המחלקה וחלק הכותרת הראשי $m = explode(",", $dd); $data = array("classname " => isset($m)?strtolower(trim($m)):"", "title" => isset($m)?trim($m):"", "params" => $match,) ; break; ) ) if ($data === false) ( // 404 if (isset($map["_404"])) ( // ברירת מחדל 404 עמוד $dd = $map["_404"]; $m = explode(",", $dd); $this->classname = strtolower(trim($m)); $this->title = trim($m); $this->params = array(); ) $this->found = false; ) else ( // נמצא! $this->classname = $data["classname"]; $this->title = $data["title"]; $this->params = $data["params"]; $ this->found = true; ) החזר $this->classname; ) ) $sm = new uSitemap(); $routed_file = $sm->שם מחלקה; // קבל את שם הקובץ לחיבור באמצעות require() require("app/".$routed_file); // חבר את הקובץ // נ.ב. בתוך הקובץ הכלול ניתן להשתמש בפרמטרי request // המאוחסנים במאפיין $sm->params

למרות שהקוד די ארוך, הוא פשוט מבחינה לוגית. אני לא רוצה להסביר את זה, אני מחשיב כל קוד PHP סביר אם הוא כתוב נכון. למד לקרוא קוד.

לא מזמן זחלתי במספר לא מבוטל של אתרים, אבל לא מצאתי שום דבר בנושא שעניין אותי לגבי CNC פשוט לאתרים, בהחלט היו חומרים, אבל הסיפור היה מאוד לא ברור ואיכשהו מעורפל, זה נראה כאילו אם מחברי הטקסטים עצמם לא הבינו על מה הם כותבים. זה גם דומה לתרגום מגושם משפה אחרת, כל כך מגושם שכל משמעות אבדה.

ובכן, מאז רציתי ליצור חומר משלי על הנושא הזה, שיגלה סוף סוף את הסודות של יצירת CNC פשוט, לא מסובך ללא סלסולים, בקפדנות וביעילות. ניצור CNC באמצעות .htaccessובאופן ישיר mod_rewrite, אבל הכל מסודר.

אז בואו נתחיל... לדוגמה, בואו נדמיין מצב קטן:

נניח שאנחנו צריכים את הקובץ index.phpלקח 2 משתנים, למשל חתולו אומנות, כלומר index.php?cat=content&art=content. תן בתוך הדוגמה חתול- קטגוריה, אומנות- מאמר, ויש לנו חומר זמין ב index.php?cat=php&art=info-chpu, אבל אנחנו מבינים כמה מכוער זה ייראה בשורת הכתובת של הדפדפן ואנחנו צריכים שהחומר שלנו יהיה זמין ב php/info-chpu. לכן אנחנו צריכים CNC:

התפקיד העיקרי של ה-CNC המוצג ניתן לקובץ .htaccess; הוא עושה את כל העבודה. אז מה צריך להיות בקובץ .htaccess:

RewriteEngine פועל

כעת אנסה להסביר את התוכן של קובץ ה-.htaccess. קַו RewriteEngine On -משמש כדי לאפשר ניתוב מחדש, כביכול, לפי הכללים שאתה מתאר. המשתמש עוקב אחר הקישור php/info-chpu, התוכן של קובץ ה-.htaccess מופעל מיד, אשר רואה שהקישור המבוקש php/info-chpu תואם את הכלל (.*)/(.*) , ולכן הוא מחלק את הכתובת המבוקשת לחלקים מהכלל תוכן1/תוכן2ומעביר אותם לתיק המנהלים index.php?cat=content1&art=content2.

זה הכל. עכשיו כל מה שאנחנו צריכים לעשות הוא "לתפוס" ולהשתמש שלנו index.phpשני משתנים חתולו אומנות.

שימו לב, אם אתה משתמש ב-cgi-bin כמטפל ב-PHP, אז במקום קובץ .htaccessאתה חייב שיהיה לך htaccess.txt

הכל פשוט וברור ככל האפשר. אם נתקלתם פתאום בקשיים בשימוש ב-CNC שהצעתי לאתר, אני ממליץ להוריד ארכיון בו הכל מוגדר ועובד - אולי יהיה לכם קל יותר להבין. ישנם 3 קבצים בארכיון:

index.php- קובץ ראשי

htaccess.txt- קובץ עבור מטפל Cgi-bin

.htaccess- קובץ עבור מטפל Apache

פרק את תוכן הארכיון לשרת שלך, ונסה את הבקשה למשל<ваш_сервер>/trololo/512 או כל אחר,<ваш_сервер>- כפי שהבנת, לא כדאי לכתוב, ציינתי את המקום שבו תפרק את הארכיון וממנו תפעיל את הקובץ.

אם יש לכם שאלות, כתבו בתגובות.

למי שלא מבין מה ואיך.

כל העניין של ה-CNC הזה הוא קובץ htaccess, אבל מה בדיוק הוא עושה?

RewriteEngine פועל
RewriteRule ^(.*)/(.*)$ index.php?cat=$1&art=$2 [L]

אנו יכולים לומר שהדוגמה הזו לוקחת כתובת כמו:

ונותן למעבדים נחשים מהסוג הזה:


ואנחנו כבר מקבלים $_GET["cat"] ו-$_GET["art"] בקובץ index.php, המכילים את שם הקטגוריה והחומר.

ניתן לשנות את הדוגמה המוצגת במאמר לפי הצורך.

לדוגמה, יש לנו כתובת עבודה domen.ru/avto.php?cat=sportcars&avto=porshe&model=carreraואם אנחנו רוצים לעשות את זה CNC כמו:

לאחר מכן נכתוב ב-.htaccess:

RewriteEngine פועל
RewriteRule ^(.*)/(.*)/(.*)$ avto.php?cat=$1&avto=$2&model=$3 [L]

ואחרי שנוסיף את שתי השורות לעיל לקובץ .htaccess, החומר שלנו ייפתח למבקרים בכתובת:

domen.ru/sportcars/porshe/carrera

או פתאום, אם יש לנו כמה מטפלי PHP, אז נוכל לשים כלל ב-.htaccess עבור כל אחד מהם:

RewriteEngine פועל
RewriteRule ^avto/(.*)$ avto.php?id=$1 [L]
RewriteRule ^air/(.*)$ forair.php?id=$1 [L]
RewriteRule ^flot/(.*)$ waterflot.php?id=$1 [L]

מהדוגמה ניתן לראות שכל הבקשות שמתחילות בdomen.ru/avto/ יישלחו למטפל avto.php, וכל הבקשות שמתחילות בdomen.ru/air/ יישלחו למטפל forair.php.

עכשיו כדאי לשים לב למשהו חשוב! לפני ה-RewriteRule שלך ​​שים את הקוד הזה:

RewriteCond %(REQUEST_FILENAME) !-ד
RewriteCond %(REQUEST_FILENAME) !-f

קוד זה יאפשר לך להימנע מהפנייה למטפל בעת בקשת תיקיות סטטיות וקבצים המאוחסנים פיזית בתיקיית האתר.

עוד תכונה חשובה מאוד של CNC, שלא זכתה לסיקור, היא קישורים בקוד ה-HTML של האתר שלך לסגנונות, תמונות וכו'. העובדה היא שהנתיב היחסי לתמונות וקבצים שאתה מחבר בדף חייב להיות קומפילציה תוך כדי צילום לקחת בחשבון את ה-CNC, שכן כל קו נטוי (/) בכתובת יטופל כאל תיקייה. כתוצאה מכך, נתיבי ה-CNC היחסיים יהיו בצורת "../../". אנו ממליצים לקרוא מאמרים על כתובות יחסיות אם אינך יודע כיצד ליצור את ההיררכיה שלהן ב-HTML. אם אתה לא רוצה להתעסק בזה או לא מבין על מה אנחנו מדברים, פשוט קבע נתיבים מוחלטים לכל מקום, כלומר לתמונות במקום:

src="/images/vasya.png"

src="http://site.com/images/vasya.png"

במקרה זה, נתוני האתר ייקראו בצורה נכונה בכל CNC, עם כל מספר של לוכסנים. עשה את אותו הדבר עם כל הקבצים הכלולים ל-HTML.

עכשיו זה הזמן לדבר על האפשרות השנייה של הפנייה מחדש דרך .htaccess. האפשרות השנייה קשורה לחלוטין לראשונה, אך היא הפניה אוניברסלית מ-htaccess. הפניה מחדש מורכבת מכלל אחד בלבד:

RewriteRule ^(+)$ /engine.php?query=$1 [L]

כל ההיגיון של הפנייה כזו היא שכל מה שאחרי http://site.com/ יישלח למטפל engine.php במשתנה $_GET["query"]. לאחר מכן, ב-engine.php נוכל לחלק את המשתנה לחלקים:

$query=$_GET["query"];

$url=explode("/", $query);

ועכשיו יש לנו מערך $url שמכיל חלק מהנתיב המלא בכל תא. לדוגמה, אם הכתובת שלנו (משתנה שאילתה) נראית כך: תחבורה / רכב / מעבורת / מעבורת / תיאור, ולאחר מכן לאחר העיבוד זה יהיה:

$url="transport";

$url="auto";

$url="ferrary";

$url="laferrary";

$url="description";

ולאחר העיבוד, אתה יכול לבצע כל פעולה עם הנתונים האלה.

וזה עשוי להיות שימושי: כדי לברר את מספר הערכים במערך, השתמש count($url), כדי להציג את הערך של הערך האחרון במערך, השתמש end($url).

ניתן לענות בקצרה על השאלה איך מייצרים מכונת CNC. בידיעה שמכונת כרסום CNC תוצרת בית, באופן כללי, היא מכשיר מורכב עם מבנה מורכב, מומלץ למעצב:

  • לרכוש ציורים;
  • לרכוש רכיבים ומהדקים אמינים;
  • להכין כלי טוב;
  • יש בהישג יד מחרטת CNC ומכונת קידוח לייצור מהיר.

לא יזיק לצפות בסרטון - מעין מדריך הדרכה היכן להתחיל. ואתחיל בהכנה, אקנה את כל מה שאני צריך, להבין את הציור - זו ההחלטה הנכונה למעצב מתחיל. לכן, שלב ההכנה שלפני ההרכבה חשוב מאוד.

עבודת שלב הכנה

להכנת מכונת כרסום CNC תוצרת בית, ישנן שתי אפשרויות:

  1. אתה לוקח סט חלקים מוכן (רכיבים שנבחרו במיוחד), שממנו אנו מרכיבים את הציוד בעצמך.
  2. מצא (עשה) את כל הרכיבים והתחיל להרכיב במו ידיך מכונת CNC שתענה על כל הדרישות.

חשוב להחליט על המטרה, הגודל והעיצוב (איך מסתדרים בלי שרטוט של מכונת CNC ביתית), למצוא דיאגרמות לייצור שלה, לרכוש או לייצר כמה חלקים הדרושים לכך, ולרכוש ברגים עופרת.

אם תחליט ליצור מכונת CNC במו ידיך ולהסתפק בלי סטים מוכנים של רכיבים ומנגנונים, מחברים, אתה צריך תרשים מורכב לפיו המכונה תעבוד.

בדרך כלל, לאחר שמצאו דיאגרמה סכמטית של המכשיר, הם מדגמים תחילה את כל חלקי המכונה, מכינים שרטוטים טכניים, ואז משתמשים בהם לייצור רכיבים מדיקט או אלומיניום במחרטה וכרסום (לפעמים יש צורך להשתמש ב- מקדחה). לרוב, משטחי עבודה (נקראים גם שולחן עבודה) הם דיקט בעובי של 18 מ"מ.

הרכבה של כמה רכיבי מכונה חשובים

במכונה שהתחלת להרכיב במו ידיך, עליך לספק מספר רכיבים קריטיים המבטיחים את התנועה האנכית של כלי העבודה. ברשימה זו:

  • הילוך סליל - סיבוב מועבר באמצעות חגורת שיניים. זה טוב כי הגלגלות לא מחליקות, ומעבירות באופן שווה כוחות לפיר של ציוד הכרסום;
  • אם אתה משתמש במנוע צעד (SM) למיני-מכונה, רצוי לקחת כרכרה מדגם מדפסת גדול יותר - חזק יותר; למדפסות מטריקס ישנות היו מנועים חשמליים חזקים למדי;

  • עבור התקן בעל שלוש קואורדינטות, תצטרך שלושה SDs. זה טוב אם יש 5 חוטי בקרה בכל אחד, הפונקציונליות של המיני-מכונה תגדל. כדאי להעריך את גודל הפרמטרים: מתח אספקה, התנגדות מתפתל וזווית סיבוב המנוע בשלב אחד. כדי לחבר כל מנוע צעד אתה צריך בקר נפרד;
  • בעזרת ברגים, התנועה הסיבובית מהמנוע הופכת ללינארית. כדי להשיג דיוק גבוה, רבים רואים צורך בברגי כדור (ברגים כדוריים), אך רכיב זה אינו זול. בעת בחירת סט של אגוזים וברגים הרכבה עבור בלוקים הרכבה, בחר אותם עם מוסיף פלסטיק, זה מפחית את החיכוך ומבטל את ההשפעה;

  • במקום מנוע צעד, אתה יכול לקחת מנוע חשמלי רגיל, לאחר שינוי קטן;
  • ציר אנכי המאפשר לכלי לנוע בתלת מימד, המכסה את כל שולחן הרנטגן. הוא עשוי מלוח אלומיניום. חשוב שמידות הציר יהיו מותאמות למידות המכשיר. אם יש לכם תנור מופל, ניתן ליצוק את הציר לפי מידות השרטוטים.

להלן ציור שנעשה בשלוש הקרנות: מבט צד, מבט אחורי ומבט מלמעלה.

תשומת לב מרבית למיטה

הקשיחות הדרושה של המכונה מסופקת על ידי המיטה. מותקנים עליו פורטל נייד, מערכת הובלת מסילה, מנוע, משטח עבודה, ציר Z וציר.

לדוגמה, אחד היוצרים של מכונת CNC תוצרת בית עשה מסגרת תומכת מפרופיל אלומיניום Maytec - שני חלקים (חתך 40x80 מ"מ) ושתי לוחות קצה בעובי 10 מ"מ מאותו חומר, המחברים את האלמנטים עם פינות אלומיניום. המבנה מחוזק, בתוך המסגרת ישנה מסגרת העשויה מפרופילים קטנים יותר בצורת ריבוע.

המסגרת מותקנת ללא שימוש במפרקים מרותכים (תפרים מרותכים אינם מסוגלים לעמוד בעומסי רטט). עדיף להשתמש באגוזי T בתור הידוק. לוחות הקצה מספקים התקנה של בלוק נושא להרכבת בורג ההובלה. תצטרך מיסב רגיל ומסב ציר.

בעל המלאכה קבע שהמשימה העיקרית של מכונת ה-CNC מתוצרת עצמית היא ייצור חלקי אלומיניום. מאחר וחלקי עבודה בעובי מרבי של 60 מ"מ התאימו לו, הוא עשה את מרווח הפורטל ל-125 מ"מ (זה המרחק מהקורה הצולבת העליונה למשטח העבודה).

תהליך ההתקנה הקשה הזה

עדיף להרכיב מכונות CNC תוצרת בית, לאחר הכנת הרכיבים, אך ורק לפי השרטוט כדי שיעבדו. תהליך ההרכבה באמצעות ברגים עופרת צריך להתבצע ברצף הבא:

  • בעל מלאכה בקיא מתחיל בחיבור שני המנועים הראשונים לגוף - מאחורי הציר האנכי של הציוד. האחד אחראי לתנועה האופקית של ראש הכרסום (מובילי מסילה), והשני אחראי לתנועה במישור האנכי;
  • פורטל זז הנע לאורך ציר X נושא את ציר הכרסום והתמיכה (ציר z). ככל שהפורטל גבוה יותר, כך ניתן לעבד את חומר העבודה גדול יותר. אבל בפורטל גבוה, במהלך העיבוד, ההתנגדות לעומסים המתעוררים פוחתת;

  • לחיזוק מנוע ציר ה-Z ומובילים ליניאריים, נעשה שימוש בלוחות קדמיים, אחוריים, עליונים, אמצעיים ותחתונים. הכינו שם עריסה לציר הטחינה;
  • הכונן מורכב מאומים וחתיכים שנבחרו בקפידה. כדי לתקן את ציר המנוע ולחבר אותו לחתך, השתמש בפיתול גומי של כבל חשמלי עבה. הקיבוע עשוי להיות ברגים המוכנסים לשרוול ניילון.

לאחר מכן מתחילה ההרכבה של שאר הרכיבים והמכלולים של המוצר הביתי.

אנו מתקינים את המילוי האלקטרוני של המכונה

כדי ליצור מכונת CNC במו ידיך ולהפעיל אותה, עליך לפעול עם בקרה מספרית שנבחרה נכון, מעגלים מודפסים באיכות גבוהה ורכיבים אלקטרוניים (במיוחד אם הם סיניים), שיאפשרו לך ליישם את כל הפונקציונליות על מכונת CNC, מעבדת חלק מתצורה מורכבת.

על מנת למנוע בעיות ניהול, למכונות CNC תוצרת בית יש את הרכיבים הבאים בין הרכיבים:

  • מנועי צעד, חלקם עצרו למשל נמה;
  • יציאת LPT, דרכה ניתן לחבר את יחידת בקרת ה-CNC למכונה;
  • מנהלי התקנים לבקרים, הם מותקנים על מכונת כרסום מיני, המתחברים בהתאם לתרשים;

  • לוחות מיתוג (בקרים);
  • יחידת אספקת חשמל 36V עם שנאי מטה הממיר ל-5V כדי להפעיל את מעגל הבקרה;
  • מחשב נייד או PC;
  • כפתור שאחראי לעצירת חירום.

רק לאחר מכן, נבדקות מכונות CNC (במקרה זה, בעל המלאכה יבצע עליהן ניסוי, יטען את כל התוכנות), ומזהים ומבוטלים חסרונות קיימים.

במקום מסקנה

כפי שניתן לראות, אפשר לעשות CNC שאינו נחות מדגמים סיניים. לאחר שהכנת סט חלקי חילוף בגודל הנדרש, בעל מיסבים איכותיים ומספיק מחברים להרכבה, משימה זו היא בכוחם של מי שמתעניין בטכנולוגיית תוכנה. לא תצטרך לחפש דוגמה לאורך זמן.

התמונה למטה מציגה כמה דוגמאות של מכונות בשליטה מספרית, שיוצרו על ידי אותם בעלי מלאכה, לא אנשי מקצוע. אף חלק לא יוצר בחופזה, בגודל שרירותי, אלא הותקן לבלוק בדיוק רב, תוך יישור מוקפד של הצירים, שימוש בברגי עופרת איכותיים ומסבים אמינים. האמירה נכונה: כמו שאתה מרכיב, כך תעבוד.

ריק מסוג duralumin מעובד באמצעות CNC. עם מכונה כזו, אשר הורכבה על ידי אומן, אתה יכול לבצע הרבה עבודות כרסום.

דוגמה נוספת למכונה מורכבת, שבה לוח סיבים משמש כשולחן עבודה עליו ניתן לייצר לוח מעגלים מודפס.

מי שיתחיל לייצר את המכשיר הראשון יעבור בקרוב למכונות אחרות. אולי הוא ירצה לבחון את עצמו כמרכיב של יחידת קידוח, ובלי לשים לב, יצטרף לצבא האומנים שהרכיבו מכשירים ביתיים רבים. יצירתיות טכנית תהפוך את חייהם של אנשים למעניינים, מגוונים ועשירים.

הפתק:מופעלת הגרסה האדפטיבית של האתר, אשר מתאימה אוטומטית לגודל הקטן של הדפדפן שלך ומסתירה חלק מהפרטים של האתר לנוחות הקריאה. צפייה נעימה!

שלום אורחים יקרים וקוראים קבועים של הבלוג בנושא יצירת אתר - אֲתַרעַל! באחד מהמאמרים הקודמים בסעיף זה, הבטחתי לספר לך כיצד תוכל ליצור קישורי CNC משלך תוך מספר דקות בלבד. למרות העובדה שהמאמר עשוי להיראות לכם רחב היקף, ולחלקם, מסובך, אני מקווה שכשתקראו אותו עד הסוף, תסכימו שאין באמת שום דבר על טבעי ביצירת CNC.

CNC– זהו קיצור באנגלית מעוות (כתובת אתר ידידותית למנועי חיפוש). זה מציין כתובות קישורים ידידותיות למנועי חיפוש. כתבתי גם על CNC במאמר על. בגרסה הרוסית, כתובת האתר של SEF כתובה כ-CNC - כתובת URL קריאה לאדם. מה המשמעות של כל זה? משמעות הדבר היא שהכתובות של הקישורים שלך יהיו עם טקסט מודע, ולא זבל טכני; לדוגמה, אתה יכול לעקוב אחר הקישור למעלה.

מהם היתרונות של כתובות אתרים SEF?

שנית, SEO. קישורים כאלה מתקבלים בברכה על ידי מנועי החיפוש; לפני כמה שנים הם היו יכולים לתת לך יתרון משמעותי על פני המתחרים שלך. כיום, קישורים כאלה נתפסים כמובן מאליו; כעת אתה רק לעתים רחוקות רואה אתרים עם קישורים שאינם CNC, אבל הם עדיין קיימים.

שְׁלִישִׁי, זו יוקרה. כשאני נכנס לאתרים שבהם, במקום כתובת ברורה ויפה, הקישורים מכילים כל מיני זבל, או אפילו מידע מסווג, אני שואל את עצמי את השאלה: "זה נראה כמו אתר הגון, אבל למה המפתחים לא עשו CNC? האם זה באמת היה כל כך קשה? אולי פשוט לא אכפת להם מדברים כאלה או שפשוט חסר להם ידע וכישורים?" באופן כללי, אתרים כאלה הם תעלומה גדולה עבורי.

רביעית, בטיחות. אתרים עם קישורי CNC אינם מכילים בכתובתם מידע טכני המועבר בשיטת GET (), אשר ניתן להשתמש בה בקלות לפריצת האתר.

ולבסוף: CNC – כאמצעי ניווט. אם הקישור ברור למשתמש, אז הוא יכול לנווט בין חלקים באתר פשוט על ידי עריכת כתובת האתר שלך. לדוגמה:

Http://site/useful/2-sublime-text-2

Http://site/useful/ אפשרויות +SymLinksIfOwnerMatch

RewriteEngine פועל

יש לנו את קובץ ה-.htaccess הבא:

mod_rewrite תנאים והגבלות

כל הכללים נכתבים באמצעות הפקודה RewriteRule, ואחריו רווח וכתוב לִטעוֹםה-CNC שלך באמצעות ביטויים רגולריים, ואז שים רווח נוסף וסמן את הקו שאליו אנו רוצים להמיר את התבנית הזו, כאשר $1,$2,...$n הם המשתנים שלנו. אתה יכול לגלות עוד על זה בקישור למעלה, כמו גם בהמשך מאמר זה. בואו נסתכל על דוגמה:

RewriteRule ^useful/(*) /index.php?category=useful&article=$1

איפה ^שימושי/(*)- זוהי תבנית כתובת האתר הצפויה,

א /index.php?category=useful&article=$1- לזה אנחנו ממירים אותו אם כתובת האתר הנכנסת תואמת לתבנית.

איפה $1 שווה למה שכתוב ב סוגריים, זה $1 = * אם הסוגריים יופיעו 2 פעמים, אז היו לנו את המשתנה $1 ו-$2, אם הסוגריים יופיעו 3 פעמים, אז המשתנים $1, $2, $3 וכן הלאה. במקרה זה, המשתנים נוצרים באותו סדר שבו מופיעים הסוגריים.

זה ברור? - כל הכבוד. לא ברור? - תמשיך הלאה, נחזור לזה. כמו כן, ברצוני להסב את תשומת לבכם לכך שכדי להבין טוב יותר את המאמר, עליכם כבר להיות בעלי ידע בסיסי ב-PHP, וכן לעבוד עם שיטות GET ו-POST. בוא נמשיך.

על מנת שהמטפל שלנו, כלומר, mod_rewriteלא עבד כל פעם שלא לצורך, אנחנו בפנים RewriteRuleאנו מציינים את התבנית שכתובות האתרים הנכנסות חייבות להתאים. אם כתובת ה-URL לא תואמת לדפוס, אז mod_rewrite פשוט לא יעבוד ולא ימיר את כתובת ה- SEF הנכנסת לכתובת אתר שנוכל לעבוד איתה.

כלומר, בשלב זה חשוב שתבינו את עצם המהות: פרמטרים לא מועברים בקישורי CNC, וללא פרמטרים אנחנו לא יכולים לעשות כלום ב-PHP עם הקישור הזה, אז באמצעות mod_rewrite אנחנו ממירים קישור CNC ללא פרמטרים V לא קישור CNC עם פרמטרים. מהם הפרמטרים? בדוגמה למעלה יש לנו 2 פרמטרים:

/index.php?category=useful&article=$1

פָּרָמֶטֶר קטגוריהופרמטר מאמר.

שוב, אני רוצה להסב את תשומת לבך לעובדה שאתה כבר אמור לדעת על הפרמטרים, רק הזכרתי לך בקצרה.

בתבניות אנחנו יכולים להשתמש סמליםו שיעורי אופי. סמל הנקודה מייצג לחלוטין כל סמל.

  • . - כל תו בודד
  • הוא כיתת אופי. מציין את נוכחותו של אחד מהתווים הרשומים, תלוי רישיות.
  • – שיעור אופי. מציין את נוכחותו של אחד מהסמלים שביניהם אלפני ז, כלומר, כל האלפבית האנגלי.
  • - אותו דבר, רק בלי לקחת בחשבון את המקרה, כלומר את כל האלפבית, כולל אותיות גדולות וקטנות כאחד.
  • אתה יכול גם להשתמש במספרים:
  • כמובן שניתן לשלב הכל:
  • [^rewfad]– מחלקת תווים, אך עם סימן ^ בתוך סוגריים מרובעים המציינים שהתבנית לא חייבת להכיל את התווים הללו.
  • אתר|ציטוט– מציין חלופה: אתר או ציטוט מתאימים.

מכמתים או מכמתים

כל הדוגמאות הקודמות ציינו תו אחד (יחידה אחת), אבל מה אם נרצה להראות שלא יכול להיות אחד, אלא כמה תווים מהמרווח הזה לפי הרצוי. לשם כך עלינו להשתמש במכמתים:

  • ? - 0 או 1 תו מהטקסט הקודם (מחלקת תווים, סמל וכו')
  • * — 0 או כל מספר תווים מהטקסט הקודם (n>0)
  • + - 1 או כל מספר של תווים מהטקסט הקודם (n>1)
  • (נ)- n תווים בדיוק, כאשר n הוא מספר מסוים.

לדוגמה:

  • {4} - חייב להיות בדיוק 4 תווים מהטקסט הקודם.
  • {4,5} - 4 או 5 תווים
  • {,6} - מאפס עד 6 תווים
  • {4,} - מ-4 עד אינסוף תווים

דוגמה היא השורה המפורסמת שלנו:

RewriteRule ^שימושי/(*)

שבו החלנו את כוכבית המכמת (כמתה) (*) אחרי מחלקת התווים. זה אומר שבכתובת האתר שלנו אחרי מוֹעִיל/יכולים להיות סמלים מ-a עד z בכל מספר, ובאופן טבעי, בכל רצף, או שהם לא קיימים כלל. אנחנו לא לוקחים את הדומיין בחשבון, הוא מתכוון בפני עצמו.

מיגון

כמו כן, בעת יצירת תבנית, אל תשכח את . אם אתה רוצה לצרף, למשל, תו נקודה במחלקה של תו, אז אתה צריך לברוח ממנה, שכן ללא בריחה נקודה (תו שירות) פירושו לחלוטין כל תו:

אותו דבר חל על סוגריים מרובעים, הם מציינים מחלקת תווים, כך שאם כתובת האתר שלך עשויה להכיל סוגריים מרובעים, יש צורך ב-escape:

מגבלת התחלה וסוף קו (סמנים)

כדי לציין את ההתחלה או הסוף של שורה, ללא קשר לתחום, נעשה שימוש בסמלים הבאים:

  • ^ - תחילת כתובת האתר
  • $ - סוף כתובת האתר

כלומר, בדוגמה הראשונה שלנו, ציינו שהתבנית שלנו מתחילה בדיוק מההתחלה של כתובת האתר, ולא מכל מקום (מהאמצע, מהסוף):

RewriteRule ^שימושי/()

משך את תשומת לבךאל תתבלבלו מהעובדה שהסימן ^ בתוך סוגריים מרובעים פירושו שלילה!

משוב ב-mod_rewrite

$n– זה ה"משתנה" שלנו בסוגריים, כבר דיברנו עליהם. עובד עבור RewriteRule.

%n- אותו דבר, רק ב RewriteCond. עוד לא הסתכלנו על RewriteCond, זה עוד לפנינו.

אז אם RewriteRuleהם כללי תרגום כתובת האתר שלנו, אם כן RewriteCond– זהו מצב, אנלוגי של . יש צורך ב-RewriteCond במצבים שבהם אתה צריך לבצע שינוי כתובת URL (RewriteRule) רק כאשר מתקיים תנאי כלשהו.

לשרת יש משתנים משלו שאנו יכולים להשתמש בהם בתנאי RewriteCond שלנו:

כותרות HTTP:
HTTP_USER_AGENT
HTTP_REFERER
HTTP_COOKIE
HTTP_FORWARDED
HTTP_HOST
HTTP_PROXY_CONNECTION
HTTP_ACCEPT REMOTE_ADDR

חיבור ובקשה:

REMOTE_HOST
REMOTE_USER
REMOTE_IDENT
REQUEST_METHOD
SCRIPT_FILENAME
PATH_INFO
QUERY_STRING
AUTH_TYPE

בתוך חדרי השרתים:

DOCUMENT_ROOT
SERVER_ADMIN
שם שרת
SERVER_ADDR
SERVER_PORT
SERVER_PROTOCOL
SERVER_SOFTWARE

מערכת:

TIME_YEAR
TIME_MON
TIME_DAY
TIME_HOUR
TIME_MIN
TIME_SEC
TIME_WDAY
זְמַן

מיוחד:

API_VERSION
הבקשה
REQUEST_URI
REQUEST_FILENAME
IS_SUBREQ

התחביר לשימוש במשתני שרת הוא:

%(מִשְׁתַנֶה)

בואו ניצור את התנאי הראשון שלנו:

RewriteCond %(HTTP_USER_AGENT) ^Mozilla.* RewriteRule …

אם המבקר הגיע מדפדפן Mozilla Firefox, אנו מבצעים את הכלל הבא. כפי שאתה יכול לראות, בניגוד ל-PHP, אנחנו לא משתמשים בסוגרים מסולסלים כדי למסגר את הכלל שלנו, שיבוצע אם התנאי הוא TRUE.

RewriteCond מאפשר לך להשתמש באופרטורים להשוואה:< (меньше), >(גדול מ), = (שווה). יש גם משמעויות מיוחדות, למשל:

  • -d (האם זו ספריה)
  • -f (האם זה קובץ)
  • -s (אם הקובץ אינו בגודל אפס)
  • ! – הכחשה.

דגלים

  • nocase|NC- אתה יכול לכתוב או Nocase או NC, זה אותו דבר, זה אומר ללא רגישות לאותיות גדולות. כלומר, אנחנו כבר לא יכולים לכתוב:
RewriteRule ^שימושי/

במקום זאת כתוב את זה:

RewriteRule ^שימושי/

  • ornext|OR- אם התנאי הזה או הבא הוא TRUE, אז אנו מבצעים RewriteRule. דוגמא:
  • RewriteCond %(REMOTE_HOST) ^host1.* RewriteCond %(REMOTE_HOST) ^host2.* RewriteCond %(REMOTE_HOST) ^host3.* RewriteRule …
  • אחרון|L- הכלל האחרון. אם הכלל מיושם, אז הכללים הממוקמים למטה בקוד לא יפעלו.
  • הבא|נ- אנלוגי כלשהו להמשך. אם הכלל מיושם, הוא מאלץ את כל הכללים להתנגן מההתחלה, אבל עם המיתר שכבר הומר.
  • הפניה מחדש|R- הפנייה מחדש. ברירת המחדל היא 302. אתה יכול לציין קוד הפניה אחר, לדוגמה:
  • אסור|F- כתובת האתר הופכת לאסורה.
  • נעלם|G- שולח תגובת שרת 410.
  • שרשרת|C-חיבור. אם כלל לא יופעל, אז גם הכללים הקשורים אליו לא יפעלו אוטומטית.
  • סוג|T- סוג MIME. הגדרה מאולצת של סוג הקובץ. אתה יכול להעביר סיומת קובץ אחת כאחרת :) למשל, יש לנו קבצים עם הסיומת .zip, אבל למעשה הם תמונות, אז כדי לתת קבצים אלה כתמונות (.png, .gif וכו'), אתה יכול השתמש בדגל הזה.
  • דלג|S- דלג על הכלל הבא, אתה יכול לציין כמה בבת אחת, לדוגמה:
  • env|E=VAR:VAL- הגדר את משתנה הסביבה.
  • cookie|CO- לשלוח עוגיות.
  • אם אתה צריך להגדיר כמה דגלים בו-זמנית, הפרד אותם בפסיקים, לדוגמה:

    כפי שאולי ניחשתם, ניתן להשתמש ב-mod_rewrite לא רק עבור CNC, אלא גם למטרות מעניינות רבות אחרות, למשל, הסוואה- זוהי שיטת קידום אתרים בכובע שחור, כאשר עמוד אחד ניתן למבקרים באותה כתובת, ושונה לחלוטין לרובוטים לחיפוש. ובכן, בסוף המאמר, אני אראה לך דוגמה חיה לשימוש בכל מה שנכתב למעלה וכיצד כל זה עובד באינטראקציה עם ה-PHP שלנו.

    דוגמה חיה לשימוש ב-mod_rewrite

    אז כך נראה קובץ ה-.htaccess שלי:

    אפשרויות +SymLinksIfOwnerMatch RewriteEngine פועל
    RewriteCond %(HTTP_HOST) ^www\.(.*)$ RewriteRule ^(.*)$ http://%1/$1
    RewriteCond %(HTTP_HOST) ^[^www\.].*$ RewriteRule ^/?(+)/?$ /index.php?article=$1 [L]

    מה קורה באימה הזו? מלכתחילה, אני בודק אם האדם הישן הקליד את הכתובת שלי עם www; אם כן, אז אני מפנה אותו לאותה כתובת, רק בלי www. אכתוב למה בדיוק זה נחוץ באחד מהמאמרים הבאים; בקיצור, לקידום אתרים. לאחר הפנייה מ-www לא-www, קובץ ה-.htaccess שלנו נקרא שוב, אז הכל מתחיל מחדש: אנחנו בודקים אם קיבלנו כתובת URL עם www, הפעם - לא. לאחר מכן (שני RewriteCond) אנו בודקים אם ה-URL שלנו אכן ללא www, ואז אנו מבצעים טרנספורמציות, כלומר: נזין את כל ה-URL (ללא שם הדומיין) בפרמטר המאמר.

    בשלב זה, העבודה של .htaccess הושלמה ו-PHP נכנס לתמונה. הקוד הבא נמצא ב-index.php:

    If (!empty($_GET["מאמר "]))( // בדוק את פרמטר המאמר לריקנות switch($_GET["מאמר "])( case "value1": $page = "נתיב ל-php file1 של הדף שלנו";break; case "value2": $page = "נתיב ל-php file2 של הדף שלנו";break ; case "value3": $page = "נתיב ל-php file3 של הדף שלנו";break; ... ) כולל $page; // חבר את הקובץ הנדרש, בהתאם לפרמטר המאמר שהתקבל }

    כתבתי בפירוט על איך זה עובד במאמר בקישור שסופק. זהו, גבירותיי ורבותיי! לבסוף, המאמר שלנו הגיע למסקנה ההגיונית שלו, וכעת תוכלו לתרגל את הידע שרכשתם. אני נפרד ממך לפני פרסום מאמר חדש, ולבסוף אני רוצה לתת לך ציטוט מעניין:

    "למרות המון דוגמאות ותיעוד, mod_rewrite הוא וודו. וודו מגניב לעזאזל, אבל עדיין וודו."

    עולם האינטרנט מתפתח במהירות וכובש פסגות חדשות. מיליוני אתרים, שירותים ושירותים שמחים לקבל בברכה משתמש נוסף לדפים שלהם. נוצרו מספר עצום של כתובות שנוצרות באופן אוטומטי. ולא תמיד נוח לקרוא ולזכור אותם. בנוסף, קבוצה חסרת משמעות של תווים מדורגת גרוע במנועי החיפוש. כתוצאה מכך, נוצר צורך להציג את יישום הקוד באופן שיוכל להופיע בצורה נוחה ונעימה יותר לעין המשתמש.

    לכן, בעולם פיתוח האינטרנט הופיע המונח קישורי CNC. מה זה וכיצד ליישם את זה יידונו במאמר.

    מהם קישורי CNC

    באופן כללי, CNC היא מילת סלנג שמשמעותה כתובת URL הניתנת לקריאה על ידי אדם. URL - שאילה מכתובת ה-URL האנגלית, מאתר משאבים אחיד. קריא לאדם, בתורו, פירושו קבוצה של תווים בשורת הכתובת נוחה וקלה להבנה. לדוגמה, כתובת הדף שנוצרה עשויה להיראות כך: http://example.com/index.php?page=name. זה לא נראה מאוד ברור ולא מראה את מבנה האתר. ישנם שלטים שאינם נושאים עומס סמנטי ולא ברור מה משמעות העמוד והשם.

    כתובת האתר הבאה עשויה להיראות כך: http://example.com/products/new/boat. ברור כאן שאנחנו מדברים על מוצרים, וחדשים בזה, וספציפית על סירה. זוהי כתובת אתר הניתנת לקריאה על ידי אדם. זה הרבה יותר טוב לאינדקס על ידי מנועי החיפוש ומוצג בתוצאות החיפוש מעל השאר. ואדם שיבקר באתר יוכל להבין שהוא נכנס בדיוק לקטע הנכון.

    עם זאת, לקישורי CNC יש כמה מגבלות. לדוגמה, לא ניתן להשתמש בתווים רוסיים בכתובת. הם מוחלפים בערך מספרי ובסימן אחוז. לכן, מפתחים מקומיים משתמשים בתעתיק של מילים רוסיות ללטינית. לדוגמה, כך - oborudovanie או produkcia. כמו כן, קישור CNC שנוצר אוטומטית יכול להגדיל את האורך הכולל של הקו.

    כדי ליישם תעתיק והמרה לכתובות URL הניתנות לקריאה אנושית, נעשה שימוש בכלים מיוחדים. הם זמינים, ככלל, במערכות ניהול תוכן - CMS. קישורי CNC נוצרים באופן אוטומטי, בהתבסס על שם המוצר, המאמר או הבלוג, כמו גם הקטע בו הוא פורסם. כתוצאה מכך, בעת יצירת רשומה חדשה או הוספת מוצר, נוצרת כתובת URL הניתנת לקריאה על ידי אדם, אשר נתפסת היטב על ידי אנשים ומכונות כאחד.

    כיצד ליצור קישורי CNC ב-CMS פופולרי

    CMS היא מערכת ניהול תוכן המאפשרת בממשק נוח ופשוט ליצור אתר אינטרנט מלא תוך זמן קצר. הפונקציונליות מורחבת עקב נוכחותם של מספר רב של תבניות, מודולים ותוספים מוכנים. זה מאפשר לאדם שרחוק משפות התכנות PHP, JavaScript, HTML ושפות קשורות ליצור במהירות אתר או בלוג משלו.

    כמעט לכל מערכות ניהול התוכן יש סט כלים מצוין בצורת תוספים ליצירת CNC. כדאי להסתכל מקרוב על הנפוצים שבהם.

    • וורדפרס היא מערכת ניהול התוכן הפופולרית ביותר, לפי הסטטיסטיקה. הוא מותקן ברוב הבלוגים ואתרי האינטרנט המפורסמים. הוא מפורסם בזכות קלות הלמידה וההתקנה שלו.
    • ג'ומלה פחות פופולרית, אך עדיין נמצאת בשימוש פעיל בקרב מפתחים. יש לו פונקציונליות טובה, מבחר רכיבים, תוספים ומודולים.
    • OpenCart הוא פרויקט נפרד ליצירת חנויות מקוונות. מבחינה פנימית הוא דומה לכל CMS, אך "מותאם" לפתור מגוון מצומצם של משימות.

    קישורי CNC בוורדפרס - קל ליישום

    וורדפרס היא כנראה מערכת ניהול התוכן הפשוטה ביותר שיש. זה יכול לפשט מאוד את היצירה של אתר או בלוג מאפס בזמן קצר.

    הגדרת CNC בוורדפרס היא פשוטה וכוללת בעצם הורדה והתקנה של התוסף Cyr-To-Lat. הוא משמש להמרת מחרוזות קיריליות ללטינית.

    ראשית עליך למצוא אותו ולהוריד אותו. עדיף לעשות זאת מאתר וורדפרס הרשמי. כך תוכלו למנוע את האפשרות של קוד זדוני או תוכנת פרסום להיכנס לתוסף.

    • לאחר הורדת הארכיון, עליך לפרק אותו.
    • אז אתה צריך להעביר את התיקיה הזו לקטע wp-content -> plugins. זה נעשה בדרך כלל באמצעות כל מנהל FTP זמין.
    • כעת עליך להיכנס לפאנל הניהול של וורדפרס על ידי הזנת שם המשתמש והסיסמה שלך.
    • בקטע "תוספים" עליך למצוא את Cyr-To-Lat ולהפעיל אותו. התוסף מותקן כעת במערכת ומופעל.
    • כדי לעשות זאת, עבור אל "אפשרויות", ושם עבור אל "קישורים קבועים".
    • בהגדרות הכלליות ישנן מספר תבניות שבהן תוכלו לבנות את מראה הקישור. מומלץ להשתמש בסוג "מותאם אישית", המאפשר לך להגדיר הכל לפי הצורך. העיצוב הפשוט ביותר לתבנית כזו הוא /%category%/%postname%/. המשמעות היא שהקטגוריה תוצג בשורת הכתובת, ואחריה כותרת הפוסט.
    • ואז Cyr-To-Lat ממיר את כל זה ללטינית. כתוצאה מכך, תקבל קישור CNC יפה ומובן בוורדפרס.

    בנוסף ל-Cyr-To-Lat, אתה יכול גם להשתמש באנלוגים הזמינים באתר הרשמי. לדוגמה, אלו הם WP Translitera, ACF: Rus-To-Lat, Rus-To-Lat Advanced. התקנת התוספים הללו דומה, ולכן אין טעם להתעכב עליהם בנפרד.

    CNC בג'ומלה, מספר אפשרויות ליצירה

    ג'ומלה היא מערכת ניהול תוכן קצת יותר מורכבת. בדיוק כמו וורדפרס, יש לה את היכולת ליצור אתרים ובלוגים בזמן קצר. יש לו פונקציונליות וגמישות נרחבים. לאחר מכן, עליך לתאר כיצד ליצור קישורי CNC ב-CMS זה.

    לג'ומלה יש בתחילה פונקציונליות מובנית ליצירת כתובות URL קריאות לאדם. ניתן להפעיל קישורי CNC בג'ומלה 3 בדף ההגדרות הכלליות בסעיף "הגדרות SEO". הפריט "הפעל SEF (CNC)" צריך להיות מוגדר כ"כן". כך הקישורים יומרו לצורה מובנת יותר.

    כאן תוכל גם להגדיר הפניית כתובת URL על ידי יצירת קישור CNC ב-htaccess. קובץ זה פועל כאחסון תצורה עבור שרת האינטרנט של Apache. בו, אתה יכול להשתמש בביטויים רגולריים ובהנחיית RewriteRule כדי לשנות את ההמרה של הקישור לכתובת ה-URL הרצויה. ההבדל העיקרי בין גישה זו הוא גמישות. אתה יכול לתת קישורים כמעט לכל סוג.

    הפריט "הוסף סיומת לכתובת אתר" מוסיף את תוסף המסמך לסוף השורה. לדוגמה, html. הרחבה זו מעניינת מעט את המבקר הממוצע באתר, כך שניתן להשאיר את האפשרות במצב "לא".

    כינויים ב-Unicode - פריט זה מתעתיק את שם החומר ללטינית. זה הכרחי כדי שבמקום אותיות רוסיות או סמלים אחרים לא יוצג משהו מביך ובלתי קריא.

    רכיבים חלופיים לג'ומלה

    ניתן גם ליישם מחולל קישורי CNC בג'ומלה באמצעות רכיבים שונים. לדוגמה, אחד הפופולריים שבהם הוא JoomSEF. הוא מופץ ללא תשלום ועדיף להוריד אותו מהאתר הרשמי של ג'ומלה.

    הפונקציונליות שלו, בנוסף להמרת כתובות URL ל-CNC, כוללת ערכה להפקת מטא נתונים, מנועי חיפוש, מילות מפתח, כמו גם ניהול דפים כפולים. ראוי לציין את התמיכה הזמינה עבור קידוד UTF-8 והתאמה אישית של דף 404 לפי שיקול דעתך.

    קיימות שלוש שיטות התקנה זמינות בג'ומלה 3: הורדה ישירות מהמחשב, מספריית האתר ועל ידי שליחת קישור אליה.

    עבור האפשרות הראשונה, תצטרך להוריד את הקובץ. לאחר מכן בחר "הרחבות" מתפריט החלונית הניהולית של CMS ועבור אל "מנהל ההרחבות". באמצעות כפתור "בחר קובץ", עליך להציג למערכת את הארכיון המוכן ולהתקין אותו.

    האפשרות השנייה משמשת לעתים רחוקות. אבל השלישי הוא הנוח שבהם, מכיוון שהוא אינו דורש הורדה. אתה רק צריך להעתיק את הקישור ל- JoomSEF ולציין אותו בשדה "התקן מ-URL" בכרטיסייה באותו שם. המערכת עצמה תבדוק את נוכחותה ותתקין אותה אם כל הפרמטרים תואמים.

    ראוי לציין שכדי שהתוסף יעבוד במלואו, יש להגדיר את הפריטים "הפעל SEF", "הפניה מחדש של כתובת אתר" ו"הוסף סיומת לכתובת URL" בהגדרות SEO כ"כן".

    הרכיב המותקן ישולב מיד במערכת במצב פעיל ויתחיל בעבודתו. כלומר, הוא ממיר את כל הקישורים הקיימים למראה אסתטי יותר.

    ל- JoomSEF יש מספר רב של הגדרות ואפשרויות. בעזרתם, אתה יכול להביא בעדינות רבה את כל קישורי האתר כמעט לכל צורה נחוצה.

    JBZoo וכתובת אתר הניתנת לקריאה על ידי אדם

    רכיב JBZoo הוא כלי אוניברסלי וחזק ליצירת חנויות מקוונות, קטלוגים, בלוגים ופשוט אתרי כרטיסי ביקור המבוססים על מערכת ניהול התוכן של ג'ומלה.

    כדי להתקין את JBZoo בג'ומלה, חייב כבר להיות בו התוסף Zoo.

    לפעמים הגדרות SEF הסטנדרטיות אינן מגיעות לרכיבים שלהן מספיק כדי לבצע את ההמרה. לכן, מומלץ להשתמש ברכיב sh404SEF ליצירת קישורי CNC ב-JBZoo. מוצר זה חינמי ומהווה כלי טוב לבניית קישורים ב-JBZoo. הגדרות, פונקציות, תמיכה ברשתות חברתיות ושירותים שונים.

    ההתקנה מתבצעת על ידי העתקת הקישור לארכיון, או על ידי העלאה ישירה של קובץ שהורד קודם לשרת.

    הגדרת OpenCart ו-CNC

    OpenCart היא פלטפורמה שאינה קשורה לשום מערכת ניהול תוכן. כלומר, הוא מתפקד בנפרד. המיקוד העיקרי שלו הוא יצירה נוחה של חנויות מקוונות בדרגות מורכבות שונות. למרות שהמוצר עצמו חינמי, תוספים רבים מופצים על בסיס מסחרי. הגרסה היציבה האחרונה היא 2.0.

    אתה יכול להתחיל להגדיר את ה-CNC בדרך הראשונה על ידי עריכת קובץ התצורה של htaccess של שרת האינטרנט של Apache.

    • לשם כך, עליך לעבור לתיקיית האתר באמצעות FTP או למנהל הקבצים הזמין בזיכרון הניהולי.
    • ספריית השורש צריכה להכיל את הקובץ .htaccess.txt. מכיוון שאין לו השפעה על מערכת עם סיומת txt, הדבר הראשון שצריך לעשות הוא לשנות את השם ל-.htaccess. כעת שרת האינטרנט יקרא את ההנחיות שלו ויבצע אותן.
    • כעת עליך לעבור להגדרות האתר ובכרטיסייה "שרת" לאפשר את השימוש ב-CNC.
    • יש לשמור את כל השינויים.
    • כעת כל הקישורים אמורים להשתנות.

    לפעמים, מסיבות מסוימות, כתובות רבות עדיין אינן משתנות ונשארות לא ברורות. כדי ליישם משימה זו, אתה יכול להשתמש ברכיב SeoPro. נכון, לפני התקנתו תצטרך קודם כל ליישם את OCMOD Multiline Fix. כדי לעשות זאת, עליך לשנות ידנית את הקוד של קובץ אחד. זה נמצא בכתובת admin/controller/extension/modification.php. כדי לערוך אותו, מומלץ להשתמש בכלי השירות Notepad++ כדי למנוע בעיות עם קידודים.

    אתה רק צריך להוסיף שורת קוד אחת לבלוק אחרי המשתנה $limit. היא נראית כך:

    • $quote = $operation->getElementsByTagName("search")->item(0)->getAttribute("quote");
    • if (!$limit) (
    • $limit = -1;

    ואחרי זה להוסיף:

    • if ($quote == "true") (
    • $search = preg_quote($search);

    אז אתה צריך להתקין בפועל את מודול SeoPro עצמו. יש לפרק את הארכיון שהורדת בשרת. לאחר מכן הפעל כמה שאילתות מסד נתונים באמצעות phpmyadmin:

    • ALTER TABLE `oc_product_to_category` ADD `main_category` tinyint(1) NOT NULL Default "0"; ALTER TABLE `oc_product_to_category` ADD INDEX `main_category` (`main_category`);

    כעת עלינו לערוך את הקובץ הראשי index.php. הקו שאתה מעוניין בו הוא:

    • $controller->addPreAction(new Action("common/seo_url"));

    אשר מוחלף ב:

    • if (!$seo_type = $config->get("config_seo_url_type")) (
    • $seo_type = "seo_url";
    • $controller->addPreAction(new Action("common/" . $seo_type));

    לאחר מכן, יש קבוצה של נהלים הקשורים להגדרות בפאנל הניהול. בתפריט אתה צריך למצוא "מודולים", עבור אל "משנים" ולחץ על עדכונים. בעודך כאן, עליך לעבור לרשימת "מודולים" ולהתקין בה SeoPro. לאחר מכן, על ידי לחיצה על כפתור "ערוך", היכנס אליו ושמור. לאחר כל המניפולציות, הכל אמור לעבוד; אם לא, אז אתה צריך לנסות להתקין מחדש את המודול שוב. או חפש עזרה מפורומים מיוחדים.

    הטמעת פונקציונליות CNC בשפת PHP

    רוב האתרים באינטרנט כתובים ב-PHP. זה די חזק, נוח וקל ללמידה. עבודתו אינה נראית לעיני המשתמש, שכן קוד ה-PHP מעובד בצד השרת ונשלח לדפדפן דף HTML מוכן ומובן לדפדפן.

    אתה יכול להראות את היישום של קישורי CNC ב-PHP באמצעות דוגמה קטנה של קוד. עם זאת, כדי להביא שורות כתובת בפרויקטים אמיתיים מרובי עמודים לצורה הניתנת לקריאה אנושית, תצטרך להתעסק.

    כל אתר מתחיל את עבודתו עם הקובץ index.php. זה גם מייצר כניסות לדפים אחרים באתר. אבל תחילה עליך לשנות מעט את קובץ התצורה של htaccess. בו אתה צריך לציין או לבטל הערות מספר הנחיות, כפי שמוצג בתמונה.

    השורה הראשונה מאפשרת לך לפתור את כתובת האתר באמצעות השרת. השני מגדיר את כתובת הבסיס. שתי השורות הבאות בודקות את נוכחות הקובץ והתיקיה. האחרון מעביר את השליטה ל-index.php אם שורות 3 ו-4 מיושמות ללא שגיאות.

    כדי לאחסן את ההתאמה בין מזהה העמוד לערך המרה שלו, יש צורך בטבלה. לכן יש ליצור אותו. בפרט, אתה יכול ליצור אחד פשוט כדי להבין את התהליך. הוא יכיל שני שדות: SEF ו-page_id. SEF מאחסן את השם והוא מסוג varchar. ו-page_id הם מספרי עמודים מסוג int.

    כעת נותר לתקן את הקובץ index.php עצמו. זו רק דוגמה ובפועל עבור פרויקט ספציפי הכל עשוי להיות מעט שונה: $result = $_SERVER["REQUEST_URI"]. בשורה זו, כתובת האתר המבוקשת מועברת למשתנה $result.

    • if (preg_match ("/([^a-zA-Z0-9\.\/\-\_\#])/", $result)) ( header("HTTP/1.0 404 לא נמצא"); echo " תווים לא חוקיים ב-URL"; יציאה; )

    בלוק זה בודק נוכחות של סמלים, מספרים וכמה סימנים. אם יש משהו אחר מאלה הרשומים, אז יוצג דף 404.

    • $array_url = preg_split("/(\/|\..*$)/", $result,-1, PREG_SPLIT_NO_EMPTY);

    כאן מוצהר מערך $array_url, שלתוכו, באמצעות הפונקציה preg_split, ממוקמים אלמנטים שאין להם שום דבר נוסף ב-CNC.

    • if (!$array_url) ( $ID_page = 1; )else( $sef_value = $array_url;

    כאן הבקשה מעובדת במקרה שבו הבקשה נעשתה לא לעמוד ספציפי, אלא לדומיין. לכן, אתה צריך להגיב עם id = 1. גם בשלב זה יש שאילתה למסד הנתונים של הפרויקט, שמגלה האם יש לו ערך מהמשתנה $sef_value בשדה SEF. אם לא נמצא דבר, שלח למשתמש עמוד 404. בסוף, קוד הכתובת המתקבל מעובד והחומרים או האלמנטים המתאימים מוחזרים.

    יתרונות וחסרונות של שימוש ב-CNC

    ניתן לפרט את היתרונות של שימוש בכתובות אתרים הניתנות לקריאה על ידי אדם באופן הבא:

    • הקישור חזותית נראה אסתטי יותר מסט של סמלים בלתי מובנים, במיוחד באתרים לא מוכרים;
    • לזכור את הכתובת הרבה יותר קל;
    • כל הנתיב והמבנה של האתר מתבהרים;
    • פרמטרי GET המועברים בדרך הרגילה משתמשים במשתנים בשורת הכתובת, מה שלא קורה ב-CNC, מה שאומר שהאבטחה אינה מופרת;
    • שיפור הניווט באתר;
    • אופטימיזציה של קידום אתרים משתפרת משמעותית ורובוטי חיפוש אינדקס אתר כזה בצורה טובה יותר.

    יש הרבה פחות חסרונות. והמשמעותי שבהם הוא ההגדרה. לא תמיד ניתן להביא את כתובות הדפים לצורה מובנת לאדם באמצעות פתרונות סטנדרטיים או של צד שלישי. לפעמים צריך להתעמק בקוד ולערוך אותו בעצמך, מה שדורש ידע וזמן. החיסרון השני לא כל כך משמעותי ונוגע לאתרים עם תעבורה גבוהה. עקב היווצרות קישורים תוך כדי תנועה, העומס על האתר גדל. אבל מכיוון שעלות ציוד הרשת יורדת בהתמדה, מעטים האנשים שחושבים עלויות כאלה עבור משאבי שרת. באופן כללי, היתרונות עולים בהרבה על החסרונות, כך שלמרות שכתובות URL קריאות לאדם קשות ליישום, כדאי להשתמש בהן.

    סיכום

    המאמר דן באילו קישורים הם CNC ואילו לא. הפתרונות הפשוטים והמהירים ביותר לבעיה תוארו בפירוט. כמו גם כמה מהאפשרויות הזולות ביותר עבור גישות מורכבות. בכל מקרה, שימוש ב-CMS בעת פיתוח אתר מפחית משמעותית את עלויות העבודה והזמן בעת ​​אופטימיזציה של כתובות הדפים. לכן, יש להשתמש בשילוב של CMS ו-CNC כחלופה היעילה ביותר לפיתוח ידני.