<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>&#8235;Htm - אחלה טיפים לבניית אתרים &#187; mod_rewrite&#8236;</title>	<atom:link href="http://www.htm.co.il/tag/mod_rewrite/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.htm.co.il</link>
	<description>&#8235;מדריכים ומאמרים בנושא בניית אתרים. כל יום משהו חדש ללמוד, וליישם.&#8236;</description>	<lastBuildDate>Wed, 18 Jan 2012 09:32:13 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>il</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>&#8235;יישום שינוי כתובות עם mod_rewrite &#8211; פרק ב&#039;&#8236;</title>		<link>http://www.htm.co.il/2009/09/23/%d7%99%d7%99%d7%a9%d7%95%d7%9d-%d7%a9%d7%99%d7%a0%d7%95%d7%99-%d7%9b%d7%aa%d7%95%d7%91%d7%95%d7%aa-%d7%a2%d7%9d-mod_rewrite-%d7%a4%d7%a8%d7%a7-%d7%91/</link>
		<comments>http://www.htm.co.il/2009/09/23/%d7%99%d7%99%d7%a9%d7%95%d7%9d-%d7%a9%d7%99%d7%a0%d7%95%d7%99-%d7%9b%d7%aa%d7%95%d7%91%d7%95%d7%aa-%d7%a2%d7%9d-mod_rewrite-%d7%a4%d7%a8%d7%a7-%d7%91/#comments</comments>
		<pubDate>Wed, 23 Sep 2009 10:36:38 +0000</pubDate>
		<dc:creator>&#8235;אלון רוט&#8236;</dc:creator>				<category><![CDATA[בניית אתרים]]></category>
		<category><![CDATA[mod_rewrite]]></category>
		<category><![CDATA[קיצור כתובות]]></category>
		<category><![CDATA[שינוי כתובות]]></category>
		<category><![CDATA[תווים]]></category>

		<guid isPermaLink="false">http://www.htm.co.il/?p=497</guid>
		<description><![CDATA[&#8235;חלק שני במאמר למימוש כתובות ידודתיות באמצעות שימוש ב-mod_rewrite. בחלק זה של המאמר נעבור למימוש במוד ואני אתן לך דוגמא פשוטה לשימוש במוד על מנת ליצור כתובת ידודתית לדף PHP באתרכם.&#8236;]]></description>			<content:encoded><![CDATA[<div dir="rtl"><p>בהמשך לפרק א', בפרק זה, נלמד ליישם את שינוי הכתובות עם mod_rewrite, בכדי ליצור קישורים יותר ידידותיים לגולש ולמנועי החיפוש. היישום הוא נורא פשוט והוא נעשה דרך קובץ htaccess שאותו אנחנו יוצרים בתיקייה הראשית בשרת (public_html) ושם אנחנו כותבים את החוקים לשינוי הכתובות.</p>
<p>מטרת העל של המדריך הזה הוא לגרום לגולשים שנכנסים לכתובת הזו:</p>
<pre>http://www.mywebsite.co.il/<strong>pages/אודות</strong></pre>
<p>לקבל מהשרת את הדף הזה:</p>
<pre>http://www.mywebsite.co.il/<strong>page.php?title=אודות</strong></pre>
<p>אם אתם לא בדיוק מבינים מה הכוונה כאן, חזרו למאמר הראשון שלי בו אני מסביר על <a href="http://www.htm.co.il/2009/09/19/שינוי-כתובות-עם-mod_rewrite/">שינוי כתובות</a>.</p>
<h3>מה זה htaccess?</h3>
<p>קבצי htaccess הם קבצי הגדרה (קונפיגורציה) מקומיים כלומר &#8211; בתוך קובץ htaccess אנחנו מכניסים הגדרות שיפעלו רק על התיקייה בה נמצא קובץ הhtaccess, ברגע שיש קובץ htaccess בתיקייה מסויימת, שרת הApache בברירת מחדל יודע לגשת אליו, לקרוא אותו וליישם את מה שנכתב בתוכו.</p>
<h3>יישום בתוך קובץ הhtaccess</h3>
<p>יצרו קובץ טקסט חדש בתיקייה שבה אתם רוצים לשנות כתובות ושנו את שמו ל&quot;htaccess.&quot;, חשוב לציין שבווינדוס (במחשב האישי שלכם, לא בשרת) לא ניתן ליצור קובץ שכזה מכיוון והוא מתייחס לקובץ מסוג זה כקובץ בלי שם שיש לו רק סיומת לכן צרו אותו ישירות בשרת.</p>
<p>עכשיו אני הולך להציג לכם את הקוד המלא שיהיה בתוך קובץ הhtaccess ומיד לאחר מכן אתן הסבר על כל שורה.</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:580px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br /></div></td><td><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">Options +FollowSymLinks<br />
RewriteEngine On</div></td></tr></tbody></table></div>
<p>RewriteCond %{SCRIPT_FILENAME} !-d<br />
RewriteCond %{SCRIPT_FILENAME} !-f</p>
<p>RewriteRule ^pages/(.*)$ ./page.php?title=$1</p>
<p>השורה הראשונה מאפשרת כתובות סמליות (כמו מה שאנחנו עושים), בעיקרון בלינוקס זוהי לא שורת חובה אבל במערכות הפעלה אחרות זה הכרחי. השורה השניה מפעילה את הmod_rewrite בApache.</p>
<p>שתי שורות הבאות הן נורא חשובות, בהם אנחנו קובעים את הסדר העדיפויות של השרת &#8211; כלומר, אנחנו אומרים לשרת שאם הקבצים שאליהם הגולש מנסה להגיע אליהם דרך הכתובת באמת קיימים שלא יפעיל את הmod_rewrite. השורה השניה מסמלת שאם התיקייה (הדגל &quot;!-d&quot; עבור directories) קיימת אז שיתעלם מהmod_rewrite והשורה השלישית (הדגל &quot;!-f&quot; עבור files) מסמלת אותו דבר כלפי קבצים.</p>
<p>השורות 1-5 הן הקדמה גלובאלית לכל שינוי כתובות שתרצו לעשות.</p>
<p>לאחר ההקדמה הגלובאלית, בשורות הבאות אנחנו נכתוב את החוקים שלפיהם השרת יחליט אם לנתב את הגולש לURL המקורי שהוא הקיש או להביא לגולש מידע מנתיב אחר. השורה השביעית היא החוק היחידי שכתבנו על מנת שהשרת ינתב את הגולש כמו בדוגמה שנתנו בתחילת מאמר זה.</p>
<p>ניתן לחלק את החוק לשני חלקים:</p>
<ol>
<li>החלק הראשון הוא תנאי של מבנה עם ביטוי רגולרי
<pre>RewriteRule <strong>^pages/(.*)$</strong> ./page.php?title=$1</pre>
<p>&quot;^&quot; מסמן את תחילת תנאי המבנה, הדולר מסמן סיום התנאי, באמצע תוכלו לראות נקודה וכוכבית, נקודה מסמלת תו בודד (כל תו), והכוכבית מסמלת אין סוף חזרות של תווים &quot;בודדים&quot; (יכול להיות גם 0), הסוגרים תוחמים בתוכם את המשתנה $1, במידה ויש עוד סוגריים בהמשך הוא יתחום את המשתנה עם המספר העוקב ($2 וכן הלאה..).<br />
אם הURL הנכנס מתאים למבנה הרגולרי<span style="color: #993366;">*</span> שנכתב בחוק, הדף שיוצג לגולש ילקח מהנתיב שבחלק השני של החוק.</li>
<li>החלק השני הוא פשוט הנתיב ממנו ילקח הדף שיוצג ללקוח:
<pre>RewriteRule ^pages/(.*)$ <strong>page.php?title=$1</strong></pre>
<p>ניתן לראות בחלק זה את נתיב הקובץ שממנו השרת שולף את הדף שיוצג למשתמש עם משתנה GET שאת הערך שלו הוא מציב מאותם סוגרים בחלק הראשון של החוק.</li>
</ol>
<p><span style="color: #993366;">*</span>זהו הסבר על רגל אחת של ביטויים רגולרים, ביטויים רגולרים זוהי שפה שלמה שניתן ללמוד אותה בנפרד ואני מתכוון לכתוב לכם גם מאמר בהמשך על הנושא.</p>
<h3>בדיקה והפעלת mod_rewrite</h3>
<p>יש לציין שהmod_rewrite מגיע עם הApache ומופעל איתו כברירת מחדל, במידה והשינוי כתובות לא עובד לכם סביר להניח שאתם פשוט צריכים להפעיל את הmod_rewrite, יש מספר דרכים לבדוק אם mod_rewrite מופעל בשרת שלכם, אחד מהם הוא בעזרת הפונקציה phpinfo, בעזרתה תוכלו לבדוק אם mod_rewrite נמצאת תחת קטגוריית &quot;Loaded Modules&quot; או בעזרת השלבים הבאים:</p>
<ol>
<li>צרו קובץ טקסט חדש בתיקייה חדשה בשרת שלכם, ותשנו את שם הקובץ ל&quot;.htaccess&quot; (בלי להשאיר סיומת של txt.), והעתיקו לשם את הקוד הבא:
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:580px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">Options +FollowSymLinks</div></td></tr></tbody></table></div>
<p>RewriteEngine On</li>
<li>היכנסו דרך הדפדפן לתיקייה החדשה שפתחתם, אם התיקייה עולה בלי שגיאת <strong>500, Internal Server Error<br />
</strong>, סימן שmod_rewrite מותקן ומופעל בשרת שלכם.</li>
</ol>
<p>במידה והוצג לכם שגיאת ה<strong>500, Internal Server Erro</strong>, תוכלו להפעיל את mod_rewrite בשלבים הבאים:</p>
<ol>
<li>גבו את קובץ <em><strong>httpd.conf</strong></em> (תוכלו למצוא אותו בד&quot;כ בתיקיית conf / config וכד'.. (בFedora תוכלו למצוא אותו ב/etc/httpd/), וערכו אותו.</li>
<li>חפשו את השורה <em><strong>LoadModule rewrite_module   modules/mod_rewrite.so</strong></em>, הסירו ממנה את סימן הערה בהתחלה (סימן הסולמית).</li>
<li>חפשו את השורה <strong><em>ClearModuleList</em></strong> ותוודאו שגם היא לא הערה, כנ&quot;ל לגבי <strong><em>AddModule mod_rewrite.c</em></strong>.</li>
<li>שמרו את הקובץ, ועשו ריסטרט לhttpd (לשרת הApache), בFedora הפקודה &#8211; <strong>/etc/init.d/httpd restart<br />
</strong> תעשה את העבודה.</li>
</ol>
<p>אצלי הmod_rewrite כבר מופעל כברירת מחדל ובקובץ httpd.conf אין אצלי אף אחד מהשורות הללו, נתקלתי בעוד משתמשי Fedora באינטרנט שלא מצאו את השורות האלה לכן אל דאגה אם אין לכם חלק מהשורות הללו.</p>
<p>זה הכל, כעת אתם יכולים להשתמש ב-mod_rewrite לכל שימוש שעולה על רוחכם, המבקרים יהנו מכתובות נוחות ומנועי החיפוש (בתקווה) יהנו מכתובות מכוונות.</p>
<h3>עוד באותו נושא:</h3><ul class="related_post"><li  class="relatedPost"><a href="http://www.htm.co.il/2009/09/19/%d7%a9%d7%99%d7%a0%d7%95%d7%99-%d7%9b%d7%aa%d7%95%d7%91%d7%95%d7%aa-%d7%a2%d7%9d-mod_rewrite/" title="שינוי כתובות עם mod_rewrite"><img src="http://htm.co.il/wp-content/post-images/440.jpg" />שינוי כתובות עם mod_rewrite</a><div style="clear: both;"></div></li><li  class="relatedPost"><a href="http://www.htm.co.il/2009/09/30/%d7%94%d7%99%d7%a4%d7%95%d7%9a-%d7%a9%d7%9c-%d7%90%d7%a0%d7%92%d7%9c%d7%99%d7%aa-%d7%9c%d7%a2%d7%91%d7%a8%d7%99%d7%aa-%d7%91%d7%90%d7%9e%d7%a6%d7%a2%d7%95%d7%aa-ajax/" title="היפוך של אנגלית לעברית באמצעות AJAX"><img src="http://htm.co.il/wp-content/post-images/627.jpg" />היפוך של אנגלית לעברית באמצעות AJAX</a><div style="clear: both;"></div></li></ul></div>]]></content:encoded>			<wfw:commentRss>http://www.htm.co.il/2009/09/23/%d7%99%d7%99%d7%a9%d7%95%d7%9d-%d7%a9%d7%99%d7%a0%d7%95%d7%99-%d7%9b%d7%aa%d7%95%d7%91%d7%95%d7%aa-%d7%a2%d7%9d-mod_rewrite-%d7%a4%d7%a8%d7%a7-%d7%91/feed/</wfw:commentRss>
		<slash:comments>47</slash:comments>
		</item>
		<item>
		<title>&#8235;שינוי כתובות עם mod_rewrite&#8236;</title>		<link>http://www.htm.co.il/2009/09/19/%d7%a9%d7%99%d7%a0%d7%95%d7%99-%d7%9b%d7%aa%d7%95%d7%91%d7%95%d7%aa-%d7%a2%d7%9d-mod_rewrite/</link>
		<comments>http://www.htm.co.il/2009/09/19/%d7%a9%d7%99%d7%a0%d7%95%d7%99-%d7%9b%d7%aa%d7%95%d7%91%d7%95%d7%aa-%d7%a2%d7%9d-mod_rewrite/#comments</comments>
		<pubDate>Sat, 19 Sep 2009 01:26:59 +0000</pubDate>
		<dc:creator>&#8235;אלון רוט&#8236;</dc:creator>				<category><![CDATA[בניית אתרים]]></category>
		<category><![CDATA[mod_rewrite]]></category>
		<category><![CDATA[URL]]></category>
		<category><![CDATA[גוגל]]></category>
		<category><![CDATA[מנוע חיפוש]]></category>
		<category><![CDATA[קיצור כתובות]]></category>
		<category><![CDATA[שינוי כתובות]]></category>

		<guid isPermaLink="false">http://www.htm.co.il/?p=440</guid>
		<description><![CDATA[&#8235;מאמר הסביר את הצורך בשינוי כתובות URL תוך שימוש בmod_rewrite, מאמר זה הוא הקדמה לחלק השני שבוא מסבירים כיצד מממשים את שינוי כתובות עם mod_rewrite.&#8236;]]></description>			<content:encoded><![CDATA[<div dir="rtl"><p>היום אני יעביר לכם מדריך בנושא <strong>שינוי כתובות אינטרנט</strong> בשימוש עם mod_rewrite. <strong>mod_rewrite</strong> הוא מודל של Apache, והוא מאפשר לנו לעבד בקשות URL שמגיעות לשרת ולהעביר אותם סדרת בדיקות עם ביטויים רגולריים.</p>
<p>אתחיל במאמר זה להסביר לכם למה אתם צריכים להשתמש בmod_rewrite, במאמר הבא שיפורסם ביום ראשון, אני אלמד ליישם את mod_rewrite.</p>
<h3>סיבות לשימוש בmod_rewrite</h3>
<p>ישנן שתי סיבות עיקריות לשימוש בmod_rewrite:</p>
<ul>
<li>SEO &#8211; מנועי חיפוש אורגניים נותנים יחס מועדף לעמודים בעלי סיומת HTML מאשר לדפים בעלי סיומת PHP/ASP (כל דף שמעובד ע&quot;י השרת) מכיוון ודפים העוברים עיבוד בצד שרת הם דינאמיים והתוכן בתוכם לא בהכרח מיוצר ע&quot;י בן אדם (אלא ע&quot;י המחשב), בעוד דף HTML הוא כביכול דף סטטי שלא משתנה. שימוש נוסף בשינוי כתובות עם mod_rewirte לטובת הSEO הוא שניתן להכניס כבר בURL את הכותרת של העמוד ובכך לקדם את הדף.</li>
</ul>
<ul>
<li>קישורים ידידותיים &#8211; קישורים שמכילים פרמטר רלוונטי לתוכן העמוד, הפרמטר נבחר אישית לכל עמוד ולכן הם קישורים שיותר קל לזכור, הם גם קישורים יותר יצוגיים (להדפסה על כרטיסי ביקור לדוגמא) במקום מס' ID &quot;קר&quot; שניתן ע&quot;י המערכת.</li>
</ul>
<p>בכדי להמחיש את הסיבות שפירטתי כאן, אני אתן לכם כמה דוגמאות:</p>
<h3>דוגמאות</h3>
<ul>
<li>ברשתות חברתיות, החלפת פרמטר הID שלא שייך לתוכן העמוד עם שם של בעל העמוד:</li>
</ul>
<pre><a style="font-weight:normal" href="http://www.facebook.com/profile.php?id=1059351503" target="_blank">http://www.facebook.com/profile.php?id=<strong>1059351503</strong></a> =&gt;
<a style="font-weight:normal" href="http://www.facebook.com/alonr1" target="_blank">http://www.facebook.com/<strong>alonr1</strong></a></pre>
<p>פייסבוק יצאה במהלך הזה לפני כשלושה חודשים (13/6/2009) והמטרה הייתה להחליף את הקישורים לפרופילים בפייסבוק ב<strong>קישורים ידידותיים</strong>, כאלה שכל אחד יכול לזכור. ניתן לראות דבר זהה גם בטוויטר<strong>.</strong></p>
<p><strong><br />
</strong></p>
<ul>
<li>באתרי תדמית, תוכן ושיווק, הכנסת הכותרת לתוך הכתובת של העמוד מועילה מאוד בקידום האתר:</li>
</ul>
<pre>http://www.bing.org.il/phpfilename.php?id=35 =&gt;
<a href="http://www.bing.org.il/pages/אבטחת-אישים" target="_blank">http://www.bing.org.il/pages/אבטחת-אישים</a></pre>
<p>תחת מילות החיפוש &quot;אבטחת אישים&quot;, מנועי החיפוש האורגניים יעדיפו את הכתובת השניה על הראשונה, פשוט מכיוון והכתובת שלה יותר רלוונטית. ניתן לראות אפילו במאמר זה נעשה שימוש בmod_rewrite על מנת להציג את התאריך ואת כותרת המאמר בכתובת הURL (התיקיות שמופיעות לאחר הדומיין בכתובת אינן קיימות בשרת).</p>
<p>זה הכל למאמר זה, עכשיו אתם יודעים מה זה mod_rewrite ולמה כדאי להשתמש בו. במאמר הבא, נלמד ליישם שינוי כתובות בעזרת mod_rewrite.</p>
<h3>עוד באותו נושא:</h3><ul class="related_post"><li  class="relatedPost"><a href="http://www.htm.co.il/2009/09/23/%d7%99%d7%99%d7%a9%d7%95%d7%9d-%d7%a9%d7%99%d7%a0%d7%95%d7%99-%d7%9b%d7%aa%d7%95%d7%91%d7%95%d7%aa-%d7%a2%d7%9d-mod_rewrite-%d7%a4%d7%a8%d7%a7-%d7%91/" title="יישום שינוי כתובות עם mod_rewrite &#8211; פרק ב'"><img src="http://htm.co.il/wp-content/post-images/497.jpg" />יישום שינוי כתובות עם mod_rewrite &#8211; פרק ב'</a><div style="clear: both;"></div></li><li  class="relatedPost"><a href="http://www.htm.co.il/2009/11/27/%d7%94%d7%9e%d7%a8%d7%90%d7%94-%d7%94%d7%97%d7%93%d7%a9-%d7%a9%d7%9c-%d7%92%d7%95%d7%92%d7%9c/" title="המראה החדש של גוגל"><img src="http://htm.co.il/wp-content/post-images/901.jpg" />המראה החדש של גוגל</a><div style="clear: both;"></div></li></ul></div>]]></content:encoded>			<wfw:commentRss>http://www.htm.co.il/2009/09/19/%d7%a9%d7%99%d7%a0%d7%95%d7%99-%d7%9b%d7%aa%d7%95%d7%91%d7%95%d7%aa-%d7%a2%d7%9d-mod_rewrite/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>



