PDA

View Full Version : سوال: این کد که توی فایل htaccess قرار گرفته و لینکهای سازگار با سئو ایجاد می کنه به چه معنی هست؟



phpweb
یک شنبه 15 اسفند 1389, 15:33 عصر
من کد زیر رو برای ایجاد لینکهای سئو استفاده می کنم اما معنی کد رو نمی دونم. لطفا بگید که کد زیر به چه معنی هست؟

همچنین لطفا بگید که آیا این کد ایرادی داره یا نه؟ لطفا برای بهینه تر کردن این کد نظر خودتون رو اعلام کنید.

اگه امکانش هست کد رو خط به خط معنی کنید.



RewriteEngine On

RewriteRule ^php/([0-9]+)/([a-z0-9]+)$ php.php?id=$1&name=$2 [NC,L]
RewriteRule ^script/([0-9]+)/([a-z0-9]+)$ script.php?id=$1&name=$2 [NC,L]
RewriteRule ^sent/([0-9]+)/([a-z0-9]+)$ sent.php?id=$1&name=$2 [NC,L]
RewriteRule ^manage/([0-9]+)/([a-z0-9]+)$ manage.php?id=$1&name=$2 [NC,L]

RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ /404.php [NC,L]

MSN_Issue
یک شنبه 15 اسفند 1389, 20:01 عصر
دوست عزیز این کد برای استفاده از مد-ریرایت هست !
برای استفاده از اون (مد ریرایت) باید آشنایی ای با عبارات منظم داشته باشید ... که تغریبا در تمام خطوط ازش استفاده شده ...

alireza.stack
دوشنبه 16 اسفند 1389, 10:52 صبح
همیشه در خط اول هر htaccess این دستور نوشته می شود تا موتور Rewrite آپاچی روشن شود و تغییرات urlای ما اعمال شود:
RewriteEngine On

تمامی Rewriteruleهای پائین شبیه به هم هستند و urlها با قالب مثلا php/20/as12 را به حالت کوئری مانند تبدیل میکند. حال نمی دانم شما چرا از این حالت استفاده کرده اید چرا که برعکس کرده اید همه برای اینکه با SEO سازگار باشد به حالت برعکس دستور پائین تبدیل می کنند:
RewriteRule ^php/([0-9]+)/([a-z0-9]+)$ php.php?id=$1&name=$2 [NC,L]
RewriteRule ^script/([0-9]+)/([a-z0-9]+)$ script.php?id=$1&name=$2 [NC,L]
RewriteRule ^sent/([0-9]+)/([a-z0-9]+)$ sent.php?id=$1&name=$2 [NC,L]
RewriteRule ^manage/([0-9]+)/([a-z0-9]+)$ manage.php?id=$1&name=$2 [NC,L]

ReWriteCond برای نوشتن شرط استفاده می شود همان if خودمان. که البته اولین بار است Request_filename را میبینم و زیاد با آن آشنائی ندارم(کلی انواع دستور برای این حالت داریم.)
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ /404.php [NC,L]
NC میگوید که به دستورات از نظر بزرگ و کوچکی حروف حساس نباش. ORهائی هم که بعد از rewritecond آمده دستورات شرطی را با هم or کرده است.
پیشنهاد من این است که از این استفاده نکنید چراکه Googlebot و دیگر خزنده های وب به حالت اول بیشتر علاقه دارند و با آن سازگاری بیشتر دارند.

phpweb
دوشنبه 16 اسفند 1389, 12:55 عصر
همیشه در خط اول هر htaccess این دستور نوشته می شود تا موتور Rewrite آپاچی روشن شود و تغییرات urlای ما اعمال شود:
RewriteEngine On

تمامی Rewriteruleهای پائین شبیه به هم هستند و urlها با قالب مثلا php/20/as12 را به حالت کوئری مانند تبدیل میکند. حال نمی دانم شما چرا از این حالت استفاده کرده اید چرا که برعکس کرده اید همه برای اینکه با SEO سازگار باشد به حالت برعکس دستور پائین تبدیل می کنند:
RewriteRule ^php/([0-9]+)/([a-z0-9]+)$ php.php?id=$1&name=$2 [NC,L]
RewriteRule ^script/([0-9]+)/([a-z0-9]+)$ script.php?id=$1&name=$2 [NC,L]
RewriteRule ^sent/([0-9]+)/([a-z0-9]+)$ sent.php?id=$1&name=$2 [NC,L]
RewriteRule ^manage/([0-9]+)/([a-z0-9]+)$ manage.php?id=$1&name=$2 [NC,L]

ReWriteCond برای نوشتن شرط استفاده می شود همان if خودمان. که البته اولین بار است Request_filename را میبینم و زیاد با آن آشنائی ندارم(کلی انواع دستور برای این حالت داریم.)
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ /404.php [NC,L]
NC میگوید که به دستورات از نظر بزرگ و کوچکی حروف حساس نباش. ORهائی هم که بعد از rewritecond آمده دستورات شرطی را با هم or کرده است.
پیشنهاد من این است که از این استفاده نکنید چراکه Googlebot و دیگر خزنده های وب به حالت اول بیشتر علاقه دارند و با آن سازگاری بیشتر دارند.

منظورتون از اینکه می گید باید دستور رو برعکس کنم.

دلیلی که این کار رو کردم اینه که آپاچی لینکهایی که به شکل حالت اول هستند رو به حالت دوم تبدیل می کنه تا اسکریپتهای پی اچ پی بتونن لینک رو متوجه بشن.

یه اسکریپت پی اچ پی نمی تونه لینک زیر رو متوجه بشه.

script/1/phpweb

باید لینک بالا رو به حالت زیر تبدیل کنیم.

script.php?id=1&name=phpweb

خوشحال می شم نظرتون رو در این مورد بشنوم.

رضا قربانی
دوشنبه 16 اسفند 1389, 20:28 عصر
دوست من به اینجا سر بزن خیلی کمکت می کنه

http://barnamenevis.org/private.php?do=newpm&u=103412

موفق باشید