-
August 13th, 2015, 01:56
#1
عضو انجمن
سوال در مورد .htaccess
سلام .
من اسکریپتی دارم که لینک ها رو به صورت example.com/?a=pagename نشون میده و با تغییر هر صفححه فقط pagename تغییر میکنه .
میخوام بدونم چطور میشه از طریق modrewrite به جای فرمت بالا به صورت example.com/page=pagename لود بشه .
و همچنین خود example.com/?a=pagename به example.com ریدایرکت کنه و قابل دسترسی نباشه .
با تشکر .
-
تعداد تشکر ها از talebi1372 به دلیل پست مفید
-
August 13th, 2015 01:56
# ADS
-
August 13th, 2015, 04:04
#2
عضو انجمن
پاسخ : سوال در مورد .htaccess

نوشته اصلی توسط
talebi1372
سلام .
من اسکریپتی دارم که لینک ها رو به صورت 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
از کد زیر استفاده کنید:
کد HTML:
RewriteEngine On
RewriteRule ^([^/]*)$ /?a=$1 [L]
برای ریدایرکت هم بهتره example.com/?a=pagename ریدایرکت کنی به example.com/pagename که از نظر سئو بهتر باشه؛ این کارو با اسکریپتت باید انجام بدی؛ یعنی این که اول پارامتر a و تغییر بده به یه چیز دیگه؛ مثلا b
کد HTML:
RewriteEngine On
RewriteRule ^([^/]*)$ /?b=$1 [L]
حالا تو برنامت یه دستور شرطی بزار اگه پارامتر a پیدا شد ؛ مقدارش ریدایرکت بشه به b :
کد PHP:
if(isset($_GET['a'])){
Header( "HTTP/1.1 301 Moved Permanently" );
Header( "Location: example.com/".$_GET['a']);
}
█ سنترال هاستینگ - اولین سرویس دهنده DDoS Protected ایرانی!
█ شرکت ایمن میزبان راهبر کاسپین (شماره ثبت : 1799 شناسه ملی: 14006354907 )
-
تعداد تشکر ها ازyastheme به دلیل پست مفید
-
August 13th, 2015, 08:57
#3
عضو انجمن
پاسخ : سوال در مورد .htaccess

نوشته اصلی توسط
yastheme
page=pagename ؟این هم همچین استاندارد نیست؛
اگه قصد دارید به صورت زیر باشه :
example.com/pagename >> example.com/?a=pagename
از کد زیر استفاده کنید:
کد HTML:
RewriteEngine On
RewriteRule ^([^/]*)$ /?a=$1 [L]
برای ریدایرکت هم بهتره example.com/?a=pagename ریدایرکت کنی به example.com/pagename که از نظر سئو بهتر باشه؛ این کارو با اسکریپتت باید انجام بدی؛ یعنی این که اول پارامتر a و تغییر بده به یه چیز دیگه؛ مثلا b
کد HTML:
RewriteEngine On
RewriteRule ^([^/]*)$ /?b=$1 [L]
حالا تو برنامت یه دستور شرطی بزار اگه پارامتر a پیدا شد ؛ مقدارش ریدایرکت بشه به b :
کد PHP:
if(isset($_GET['a'])){
Header( "HTTP/1.1 301 Moved Permanently" );
Header( "Location: example.com/".$_GET['a']);
}
با تشکر .
متاسفانه اسکریپت کد شده و من منظورتون رو کامل متوجه نشدم ولی اگه منظورتون این هست که پارامتر a رو تو اسکریپت تبدیل به b کنم امکانش نیست . ولی اگر منظورتون این هست که بشه این کد رو به صفحه اظافه کرد . میشه .
- - - Updated - - -
با اظافه کردن قسمت اول ارور 500 گرفتم
mod_rewrite هم روی سرور فعال هست .
-
-
August 13th, 2015, 12:25
#4
عضو انجمن
پاسخ : سوال در مورد .htaccess
اگه امکان تغییر نیست که فقط کد htaccess وارد کنید؛بعدش تو خود سایت لینک ها رو چه جوی تغییر میدید اگه کد شده؟
الان با این کد ارور 500 داد :
کد HTML:
RewriteEngine On
RewriteRule ^([^/]*)$ /?a=$1 [L]
█ سنترال هاستینگ - اولین سرویس دهنده DDoS Protected ایرانی!
█ شرکت ایمن میزبان راهبر کاسپین (شماره ثبت : 1799 شناسه ملی: 14006354907 )
-
تعداد تشکر ها از yastheme به دلیل پست مفید
-
August 13th, 2015, 14:44
#5
عضو انجمن
پاسخ : سوال در مورد .htaccess

نوشته اصلی توسط
yastheme
اگه امکان تغییر نیست که فقط کد htaccess وارد کنید؛بعدش تو خود سایت لینک ها رو چه جوی تغییر میدید اگه کد شده؟
الان با این کد ارور 500 داد :
کد HTML:
RewriteEngine On
RewriteRule ^([^/]*)$ /?a=$1 [L]
نه . امکان وارد کردن کد htaccess هست . اونم تو فایل خودش . ولی امکان دسترسی به کد اصلی اسکریپت نیست . اسکریپت دارای دو بخش هست . فایل های اصلی و اجرایی و دستورات و بخش دوم فایل های قالب یا همون تمپلت .
من میتونم ساختار قالب رو تغییر بدم چون کد نشده ولی نمیتونم ساختار فایل های اجرایی رو تغییر بدم . چون همشون obfuscate شده .
تنها من نیستم که این اسکریپت رو خریده و سایت های مشابهی هستن که از طریق همین htaccess و اظافه کردن هدر ریدایرکت به ابتدای فایل های قالب تونستن ساختار لینک رو تغیر بدن ولی متاسفانه اموزشی براش نیست .
بله با اظافه کردن همین متن ارور 500 داد.
- - - Updated - - -
جالب اینجاست که با اظافه کردن پسوند به اخر اسم فایل کار میکنه . مثلا من پسوند .exam رو اظاف کردم به صورت زیر
کد HTML:
RewriteEngine OnRewriteRule ^([^/]*)\.exam$ /?a=$1 [L]
و حالا example.com/pagename.exam لود میشه .
و جالب تر اینکه صفحه example.com/pagename.exam?a=pagename هم وجود داره و لود هم میشه !!!
- - - Updated - - -
اقا مرسی . خودم درستش کردم
ویرایش توسط talebi1372 : August 13th, 2015 در ساعت 13:17
-