ورود

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : سوال در مورد .htaccess



talebi1372
August 13th, 2015, 01:56
سلام .
من اسکریپتی دارم که لینک ها رو به صورت example.com/?a=pagename نشون میده و با تغییر هر صفححه فقط pagename تغییر میکنه .

میخوام بدونم چطور میشه از طریق modrewrite به جای فرمت بالا به صورت example.com/page=pagename لود بشه .

و همچنین خود example.com/?a=pagename به example.com ریدایرکت کنه و قابل دسترسی نباشه .
با تشکر .

yastheme
August 13th, 2015, 04:04
سلام .
من اسکریپتی دارم که لینک ها رو به صورت example.com/?a=pagename نشون میده و با تغییر هر صفححه فقط pagename تغییر میکنه .

میخوام بدونم چطور میشه از طریق modrewrite به جای فرمت بالا به صورت example.com/page=pagename لود بشه .

و همچنین خود example.com/?a=pagename به example.com ریدایرکت کنه و قابل دسترسی نباشه .
با تشکر .
page=pagename ؟این هم همچین استاندارد نیست؛

اگه قصد دارید به صورت زیر باشه :
example.com/pagename >> example.com/?a=pagename
از کد زیر استفاده کنید:

RewriteEngine On
RewriteRule ^([^/]*)$ /?a=$1 [L]

برای ریدایرکت هم بهتره example.com/?a=pagename ریدایرکت کنی به example.com/pagename که از نظر سئو بهتر باشه؛ این کارو با اسکریپتت باید انجام بدی؛ یعنی این که اول پارامتر a و تغییر بده به یه چیز دیگه؛ مثلا b

RewriteEngine On
RewriteRule ^([^/]*)$ /?b=$1 [L]

حالا تو برنامت یه دستور شرطی بزار اگه پارامتر a پیدا شد ؛ مقدارش ریدایرکت بشه به b :



if(isset($_GET['a'])){
Header( "HTTP/1.1 301 Moved Permanently" );
Header( "Location: example.com/".$_GET['a']);
}

talebi1372
August 13th, 2015, 08:57
page=pagename ؟این هم همچین استاندارد نیست؛

اگه قصد دارید به صورت زیر باشه :
example.com/pagename >> example.com/?a=pagename
از کد زیر استفاده کنید:

RewriteEngine On
RewriteRule ^([^/]*)$ /?a=$1 [L]

برای ریدایرکت هم بهتره example.com/?a=pagename ریدایرکت کنی به example.com/pagename که از نظر سئو بهتر باشه؛ این کارو با اسکریپتت باید انجام بدی؛ یعنی این که اول پارامتر a و تغییر بده به یه چیز دیگه؛ مثلا b

RewriteEngine On
RewriteRule ^([^/]*)$ /?b=$1 [L]

حالا تو برنامت یه دستور شرطی بزار اگه پارامتر a پیدا شد ؛ مقدارش ریدایرکت بشه به b :



if(isset($_GET['a'])){
Header( "HTTP/1.1 301 Moved Permanently" );
Header( "Location: example.com/".$_GET['a']);
}



با تشکر .
متاسفانه اسکریپت کد شده و من منظورتون رو کامل متوجه نشدم ولی اگه منظورتون این هست که پارامتر a رو تو اسکریپت تبدیل به b کنم امکانش نیست . ولی اگر منظورتون این هست که بشه این کد رو به صفحه اظافه کرد . میشه .

- - - Updated - - -

با اظافه کردن قسمت اول ارور 500 گرفتم

mod_rewrite هم روی سرور فعال هست .

yastheme
August 13th, 2015, 12:25
اگه امکان تغییر نیست که فقط کد htaccess وارد کنید؛بعدش تو خود سایت لینک ها رو چه جوی تغییر میدید اگه کد شده؟
الان با این کد ارور 500 داد :

RewriteEngine On
RewriteRule ^([^/]*)$ /?a=$1 [L]

talebi1372
August 13th, 2015, 14:44
اگه امکان تغییر نیست که فقط کد htaccess وارد کنید؛بعدش تو خود سایت لینک ها رو چه جوی تغییر میدید اگه کد شده؟
الان با این کد ارور 500 داد :

RewriteEngine On
RewriteRule ^([^/]*)$ /?a=$1 [L]


نه . امکان وارد کردن کد htaccess هست . اونم تو فایل خودش . ولی امکان دسترسی به کد اصلی اسکریپت نیست . اسکریپت دارای دو بخش هست . فایل های اصلی و اجرایی و دستورات و بخش دوم فایل های قالب یا همون تمپلت .
من میتونم ساختار قالب رو تغییر بدم چون کد نشده ولی نمیتونم ساختار فایل های اجرایی رو تغییر بدم . چون همشون obfuscate شده .

تنها من نیستم که این اسکریپت رو خریده و سایت های مشابهی هستن که از طریق همین htaccess و اظافه کردن هدر ریدایرکت به ابتدای فایل های قالب تونستن ساختار لینک رو تغیر بدن ولی متاسفانه اموزشی براش نیست .

بله با اظافه کردن همین متن ارور 500 داد.

- - - Updated - - -

جالب اینجاست که با اظافه کردن پسوند به اخر اسم فایل کار میکنه . مثلا من پسوند .exam رو اظاف کردم به صورت زیر


RewriteEngine OnRewriteRule ^([^/]*)\.exam$ /?a=$1 [L]


و حالا example.com/pagename.exam لود میشه .

و جالب تر اینکه صفحه example.com/pagename.exam?a=pagename هم وجود داره و لود هم میشه !!!

- - - Updated - - -

اقا مرسی . خودم درستش کردم