PDA

View Full Version : آدرس صفحه را با تغییراتی به صفحه دیگری انتقال دهد



vahid-p
جمعه 27 بهمن 1391, 14:59 عصر
سلام
فکر کنم کاری که میگم راحت بشه انجام داد ولی خب اونقدر با پی اچ پی آشنا نیستم.
فرض کنید کاربر وارد صفحه ای با یکی از آدرس های زیر باشه :

example.com/index.php?topic=10.0
www.example.com/index.php?topic=10.0
http://example.com/index.php?topic=10.0
http://www.example.com/index.php?topic=10.0
و اونو به همون آدرس انتقال بده با این تغییر که .com رو به .ir تبدیل کنه.
حس میکنم چنین حالتی باید داشته باشه :


<?php
$url=function1;
if(function2($url,".com"))
{
$changedUrl=...;
header("location : ".$changedUrl."");
}
?>

توضیح :
function1 چه تابعی باشه که آدرس صفحه جاری رو بگیره؟
حالا اون function2 باید چه تابعی باشه که بگه رشته .com در رشته $url وجود داره یا نه.
بعد باید یه تابع یا یه دستوری بنویسیم که .com رو پیدا کنه و جاش .ir بنویسه.
بعد هم که انتقال بده.
کلا میخوام ببینم تابع خاصی برای اینکار وجود داره ( که فکر میکنم وجود داشته باشه ) وگرنه برای function2 میشه با یه حلقه انجام داد ولی حداقل باید تابع گرفتن آدرس صفحه رو داشته باشم.

vahid-p
جمعه 27 بهمن 1391, 16:04 عصر
آقا مشکلم حل شد.
کدش رو میذارم که اگر کسی مثل من این مشکل رو داشت ازش استفاده کنه :

<?php
if($_SERVER['HTTP_HOST']=="example.com" || $_SERVER['HTTP_HOST']=="www.example.com")
{
echo "Loading...";
header("Location: http://example.ir".$_SERVER['REQUEST_URI']);
}
?>

2undercover
جمعه 27 بهمن 1391, 17:47 عصر
به جای اینا از .htaccess استفاده کنید هم راحت تره هم بهینه تر!

vahid-p
جمعه 27 بهمن 1391, 21:01 عصر
چطوری؟ اونوقت به یه آدرس ثابت که نمیفرسته؟
چون من میخوام به هر آدرسی که هست بره فقط .com رو به .ir تبدیل کنه. نه اینکه از هر آدرسی به example.ir بره فقط.
اگه میشه لطفا راهنمایی کنید چه کدی باید تو فایل .htaccess نوشت؟ البته خب شاید کاربر خودش از اول example.ir وارد کنه که اونوقت نباید انتقال بده.

2undercover
شنبه 28 بهمن 1391, 15:13 عصر
توی این تاپیک بپرسید قطعا به نتیجه می رسید!:لبخند:

vahid-p
شنبه 28 بهمن 1391, 22:11 عصر
خب من یه کار که بیشتر نمیخوام بکنه. پس کجا بپرسم. تازه از دوستی پرسیدم که خودشون پیشنهاد داده بودند.

2undercover
یک شنبه 29 بهمن 1391, 13:34 عصر
ببخشید یادم رفت لینک بدم: ترفندهای .htaccess (http://barnamenevis.org/showthread.php?276467-%D8%AA%D8%B1%D9%81%D9%86%D8%AF%D9%87%D8%A7%DB%8C-.htaccess)

vahid-p
دوشنبه 14 اسفند 1391, 19:52 عصر
کدی که نوشتم روی لوکال درست کار میکنه ولی رو سرور که آپلود میکنم این اررور رو میده :

Warning: Cannot modify header information - headers already sent by (output started at /home/.../public_html/index.php:5) in /home/.../public_html/index.php on line 9
کسی میتونه بگه چجوری درستش کنم یا کد .htaccess اش رو بگه.
لطف کمک کنید.

vahid-p
دوشنبه 14 اسفند 1391, 20:54 عصر
خب کدش رو پیدا کردم :
RewriteEngine on

RewriteCond %{HTTP_HOST} ^www\.example\.com$ [NC]
RewriteRule ^(.*)$ http://example.ir/$1 [R=301,L]