-
November 29th, 2013, 01:55
#1
عضو انجمن
آدرس سایت با www یا بدون www
شاید برای شما هم پیش آمده باشد که ببینید بعضی سایت ها www. دارند ولی بعضی از آنها بدون www می باشند!
به نظر من نبودن www از دونش بهتره , خوب سلیقه هست دیگه, شما هم می تونید سایتتونو با www یا بدون اون لود کنید اما مشکل اصلی اینه که نباید با هر دو تا لود بشه!یعنی یا فقط با www یا فقط بدون www؛
چون روی سئو وب سایت شما تاثیر منفی دارد, و تقریبا رنک امتیاز با www و بدون اون جدا میشه و گوگل اونها رو دو تا آدرس جدا از هم می دونه!
برای مثال :
PHP تیــــــک - طراحی وب, آموزش و پروژه با phptik.com فرق می کنه و برای گوگل دو تا صفحه جداست!
www.phptik.com/mypage هم با آدرس phptik.com/mypage فرق می کنه اگه تا الان بیخیال این قضیه بودید احتمالا الان متوجه میشید که این یه فاجعه هست!
حالا راه حل !
بهتره اول تصمیم بگیریم سایت با www باشه یا بدون اون؟!
فایل htaccess ادیت کنید و
اگه مایل هستید سایت با www فقط بالا بیاد:
کد PHP:
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
اگه مایل هستید سایت بدون www بالا بیاد :
کد PHP:
RewriteEngine On
RewriteCond %{HTTP_HOST} !^my-domain\.com$ [NC]
RewriteRule ^(.*)$ http://my-domain.com/$1 [R=301,L]
به همین راحتی این دیگه غصه خوردن نداره
منبع: آدرس سایت با www یا بدون www
█ سنترال هاستینگ - اولین سرویس دهنده DDoS Protected ایرانی!
█ شرکت ایمن میزبان راهبر کاسپین (شماره ثبت : 1799 شناسه ملی: 14006354907 )
-
تعداد تشکر ها ازyastheme به دلیل پست مفید
-
November 29th, 2013 01:55
# ADS
-
November 29th, 2013, 10:35
#2
-
تعداد تشکر ها ازglxx به دلیل پست مفید
-
December 4th, 2013, 21:12
#3
-
تعداد تشکر ها ازho3yn_sha2 به دلیل پست مفید
-
December 28th, 2013, 00:47
#4
عضو جدید
پاسخ : آدرس سایت با www یا بدون www
با تشکر از دوست عزیزمان.
بنده روش بهتری را پیشنهاد می کنم که پیشرفته تر از روش قبلی است و از سیستم Drupal اقتباس شده است:
برای باز شدن سایت با پیشوند www :
کد PHP:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^ - [E=protossl]
RewriteCond %{HTTPS} on
RewriteRule ^ - [E=protossl:s]
RewriteRule ^ - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteCond %{HTTP_HOST} .
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^ http%{ENV:protossl}://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
</IfModule>
برای باز شدن سایت بدون پیشوند www:
کد PHP:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^ - [E=protossl]
RewriteCond %{HTTPS} on
RewriteRule ^ - [E=protossl:s]
RewriteRule ^ - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^ http%{ENV:protossl}://%1%{REQUEST_URI} [L,R=301]
</IfModule>
برخی از مزایای این روش:
1 - پشتیبانی از https
2 - عدم نیاز به تغییر کد برای دامنه های مختلف. دقیقا همین کد را همه جا می توانید استفاده کنید.
3 - عدم بروز مشکل در صورت نصب نبودن ماژول rewrite
4 - پشتیبانی از احراز هویت کاربر (حتی در حالت استفاده از FastCGI)
ویرایش توسط hejazee : December 28th, 2013 در ساعت 02:49
-
-
December 28th, 2013, 01:21
#5
عضو جدید
پاسخ : آدرس سایت با www یا بدون www
از راهنمایی خوبتون ممنون ولی من روش اول رو بیشتر میپسندم استفاده از کدهای پیچیده از نظر امنیتی درست نیست
09355565235
08134280004
همدان،شهرک مدنی،سه راه هنرستان،افرا سافت
afra.ory.ir
-
تعداد تشکر ها از vebc به دلیل پست مفید
-
December 28th, 2013, 02:45
#6
عضو جدید
پاسخ : آدرس سایت با www یا بدون www

نوشته اصلی توسط
vebc
از راهنمایی خوبتون ممنون ولی من روش اول رو بیشتر میپسندم استفاده از کدهای پیچیده از نظر امنیتی درست نیست
دوست عزیز، این طور که می فرمایید نیست.
اولا که این کد پیچیده نیست و ساده است.
ثانیا مشکل امنیتی به خصوصی ندارد.
ثالثا مشکلات روش قبلی رو نداره و از حالت ها و کانفیگ های بیشتری در سرور پشتیبانی می کنه
و از این گذشته این فرضیه که "استفاده از کدهای پیچیده از نظر امنیتی درست نیست" ایده ی صحیحی نمی باشد. زمانی که کد درست نوشته شده باشد، استفاده از آن همواره توصیه می شود.
پیروز باشید.
-
-
December 28th, 2013, 03:34
#7
عضو انجمن
پاسخ : آدرس سایت با www یا بدون www
بهتره قبل از این امور چک کنید ببینید سایت شما یا تریپل دابیلیو رنک گرفته یا بدون اون بعدش اقدام به تصمیم گیری کنید
چون بسیاری از ساتا فقط بدون این مورد رنک دارن که اگه متقل کنن سرعت ایندکس میاد پایین
-
-
December 28th, 2013, 03:54
#8
عضو انجمن
پاسخ : آدرس سایت با www یا بدون www

نوشته اصلی توسط
hejazee
با تشکر از دوست عزیزمان.
بنده روش بهتری را پیشنهاد می کنم که پیشرفته تر از روش قبلی است و از سیستم drupal اقتباس شده است:
برای باز شدن سایت با پیشوند www :
کد PHP:
<ifmodule mod_rewrite.c>
rewriteengine on
rewriterule ^ - [e=protossl]
rewritecond %{https} on
rewriterule ^ - [e=protossl:s]
rewriterule ^ - [e=http_authorization:%{http:authorization}]
rewritecond %{http_host} .
Rewritecond %{http_host} !^www\. [nc]
rewriterule ^ http%{env:protossl}://www.%{http_host}%{request_uri} [l,r=301]
</ifmodule>
برای باز شدن سایت بدون پیشوند www:
کد PHP:
<ifmodule mod_rewrite.c>
rewriteengine on
rewriterule ^ - [e=protossl]
rewritecond %{https} on
rewriterule ^ - [e=protossl:s]
rewriterule ^ - [e=http_authorization:%{http:authorization}]
rewritecond %{http_host} ^www\.(.+)$ [nc]
rewriterule ^ http%{env:protossl}://%1%{request_uri} [l,r=301]
</ifmodule>
برخی از مزایای این روش:
1 - پشتیبانی از https
2 - عدم نیاز به تغییر کد برای دامنه های مختلف. دقیقا همین کد را همه جا می توانید استفاده کنید.
3 - عدم بروز مشکل در صورت نصب نبودن ماژول rewrite
4 - پشتیبانی از احراز هویت کاربر (حتی در حالت استفاده از fastcgi)
یعنی چی از دروپال اقتباس شده اصلا چه ربطی به دروپال داره شما با این رول ها به وب سرور آپاچی میگید چطور عمل کنه هیچ ربطی هم به cms نداره!!!
-
-
December 28th, 2013, 04:15
#9
عضو جدید
پاسخ : آدرس سایت با www یا بدون www

نوشته اصلی توسط
compiler
یعنی چی از دروپال اقتباس شده اصلا چه ربطی به دروپال داره شما با این رول ها به وب سرور آپاچی میگید چطور عمل کنه هیچ ربطی هم به cms نداره!!!
دوست عزیز، یعنی این که کدهای فوق در فایل .htaccess ای که همراه با Drupal 7.24 موجود است، وجود دارد. در واقع من کدها را از این نرم افزار Open source اقتباس کرده ام.
این جا را ببینید:
http://drupalcode.org/project/drupal...79c:/.htaccess
-
-
December 28th, 2013, 11:10
#10
عضو جدید
پاسخ : آدرس سایت با www یا بدون www
اینا برای وب سرور apache هست...
همه که وب سروشون آپاچی نیست.
تنظیمات برای وب سرور nginx:
انتقال دامنه بدون www به دامنه با www :
کد:
server {
server_name example.com;
return 301 $scheme://www.example.com$request_uri;
}
بلعکس:
کد:
server {
server_name www.example.com;
return 301 $scheme://example.com$request_uri;
}
-
تعداد تشکر ها از bigsinoos به دلیل پست مفید