PDA

View Full Version : سوال: چطوری میشه تام یک ساب دومین را گرفته و به انتهای یک دومین انتقال داد



goodboybad
یک شنبه 16 مهر 1391, 21:11 عصر
سلام دوستان

چطوری میشه نام ساب دومین ها را گرفته و به انتهای یک دومین انتقال داد
به طور مثال :
anything.domain.com/index.php
را به این :
domain.com/anything/index.php
انتقال داد .
ساب دومین ها داینامیک هست و واقعی نیستند
در صورتی که حالا بخواهم این کار را انجام دهم فکر میکنه که آن اسم یک دارکتوری هست و میگه چیزی یافت نشد .
من فعلا دارم رو لکال کار میکنم راه حل را برای لکال و سرور برام توضیح دهید .

goodboybad
دوشنبه 17 مهر 1391, 00:31 صبح
بله منظورم redirect هست ولی با این تفاوت که نام ساب دامین را از ابتدا حذف کند و به انتهای دامنه مثل یک دایکتوری فرضی اضافه کند .

Hamid.RDN
دوشنبه 17 مهر 1391, 01:11 صبح
اگر از apache استفاده می کنید کافیه کدهای زیر رو در فایلی به نام htaccess. ذخیره کنید و فایل رو در ریشه وبسایت قرار بدید تا این کار رو برای شما انجام بده.



RewriteEngine On
RewriteCond %{HTTP_HOST} ^(.+)\.domain\.com$ [NC]
RewriteRule ^(.*)$ http://domain.com/%1 [QSA,R=301,L]


موفق باشید

kb0y667
دوشنبه 17 مهر 1391, 01:33 صبح
روش حل بنده اشتباه بوده

goodboybad
دوشنبه 17 مهر 1391, 18:43 عصر
اگر از apache استفاده می کنید کافیه کدهای زیر رو در فایلی به نام htaccess. ذخیره کنید و فایل رو در ریشه وبسایت قرار بدید تا این کار رو برای شما انجام بده.



RewriteEngine On
RewriteCond %{HTTP_HOST} ^(.+)\.domain\.com$ [NC]
RewriteRule ^(.*)$ http://domain.com/%1 [QSA,R=301,L]


موفق باشید

آقا این روش جواب داد .
وقتی url را تایپ میکنم و go را میزنم اصلا url فرقی نمیکنه و همان :
test.domain.com باقی میماند .
من میخواهم پس از وارد کردن url و زدن go
url به domain.com/test
تغیر کند

goodboybad
دوشنبه 17 مهر 1391, 19:32 عصر
خودم تستش نکردم همین الان نوشتم
ایشالله کار میکنه

این تابع:


<?php
function dom2dir($url){
$a=$_SERVER['HTTP_HOST'];
$i=0;
while($a[$i]!='.'){
$b.=$a[$i];
$i++;
}
$c=strpos('.com/',$url);
$url1=substr($url,0,$c+4);
$url2=substr($url,$c+4);
return $url1.'/'.$b.$url2;
}


این هم طرز استفاده ش:


$url1='http://anything.domain.com/index.php';
$url2=dom2dir($url1);


imape8@y 9372096778 موفق باشی

آقا ممنون از راهنماییتون ولی متاسفانه این آن چیزی نیست که درست جواب بدهد چون به طور معمول بعد apache به دنبال فولدری به نام آن ساب دامین میگردد و در نهایت پیغام خطا میدهد

goodboybad
دوشنبه 17 مهر 1391, 19:37 عصر
دوستان سایت های زیادی داریم که این روس را انجام میدهند با کمی تفاوت مثل face book که نام user را بعد از url قرار میدهد و یک جورایی seo هست ولی با این تفاوت که نام ساب دامین را جدا کند و به انتهای url اضافه کند .
ممنون میشم کسی راهنمایی کند به صورت جامع و کامل

goodboybad
دوشنبه 17 مهر 1391, 20:17 عصر
دوستان من با استفاده از این کد توانستم ساب دامنه را بعد از دامنه انتقال دهم .
RewriteEngine On
RewriteCond %{HTTP_HOST} ^(.+)\.domain\.com$ [NC]
RewriteRule ^(.*)$ http://www.domain.com/%1 [QSA,R=301,L]
ولی چند تا مشکل دارد .
1_ میخواهم بعد از نام ساب دامنه که قرار میدهد یک اسلش بگذارد که کد بالا اینکارا نمی کند .
2_ اگر آدرس سایت را با www وارد کنیم چیزی نمایش نمیدهد . و جتما باید بدون www باشد که من نمی حواهم .
3_ می خواهم کسانی که domain.com را میزنند به www.domain.com ریدارکت شوند .

فرض کنید 3 مشکل بالا حل شود !
حالا سرور به دنبال فولدری به نام آن ساب دومین که هرچیزی میتونه باشه میگرده .
حالا چطوری میتونم به سرور بفهمانم که برای یافتن فایل یک پله برگرد عقب بدون اینکه در عمل دست به url بگذارد و تغییر دهد.
مثلا :
حالا دیگه url شده :
www.domain.com/test
و در عمل به دنبال :
www.domain.com/test/index.php
می گردد . در صورتی که index.php در :
www.domain.com/index.php
میباشد
میخواهم url این باشد :
www.domain.com/test/index.php
ولی خودش متوجه شود که باید فایل index.php یک پله عقب تر هست

goodboybad
سه شنبه 18 مهر 1391, 19:03 عصر
کسی نیست کمک کنه ؟؟

goodboybad
پنج شنبه 20 مهر 1391, 18:53 عصر
سلام
مشکلم به طور کامل خودم حل کردم . تنها مشکلی که هست مجبورم تمام آدرس دهی های نسبی تغییر بدم و آنها را به طور کامل بنویسم .
حالا قرار میدم اگر کسی هم چنین کاری خواست از این کد استفاده کنه .

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} ^domain.net$ [NC]
RewriteRule ^(.+)$ http://www.domain.net/$1 [QSA,R=301,L]
RewriteCond %{HTTP_HOST} ^(.+)\.domain\.net$ [NC]
RewriteCond %{HTTP_HOST} !^www.domain.net$ [NC]
RewriteRule ^(.*)$ http://www.domain.net/user/%1/$2 [QSA,R=301,L]
RewriteRule ^user/.*$ ./index.php$1