در این مقاله، تقریباً تمام نمونه‌های احتمالی برای تغییر مسیر وب‌سایت در htaccess. ارائه شده است و برای هر یک از مثال‌های ارائه شده، اسکریپت‌های تغییر مسیر نیز نمایش داده شده است. بدین منظور، به‌سادگی می‌توانید کدهای زیر را برای انجام عملیات تغییر مسیر، در فایل htaccess. خود اضافه کنید. فایل htaccess. را در دایرکتوری اصلی وب سایت خود می‌توانید بیابید و اگر آن را پیدا نکردید، می‌توانید کد را در یک فایل متنی کپی کرده و آن را به عنوان htaccess. ذخیره نمایید، پس از آن می‌توانید فایل را بارگذاری کنید.

 

 

1) تغییر مسیر از www به آدرس بدون www

در این بخش، 7 اسکریپت نمونه برای تغییر مسیر از آدرس آغاز شده با www به آدرس بدون www ارائه شده است.

# Example - 1 #
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.2daygeek\.com [NC]
RewriteRule ^(.*)$ https://2daygeek.com/$1 [L,R=301]

# Example - 2 #
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]

# Example - 3 #
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^/(.*)$ http://%1/$1 [R]

# Example - 4 #
RewriteEngine On
RewriteCond %{HTTP_HOST} !^2daygeek\.com
RewriteRule (.*) https://2daygeek.com/$1 [R=301,L]

# Example - 5 #
RewriteEngine On
RewriteCond %{HTTP_HOST} !^2daygeek\.com$ [NC]
RewriteRule ^(.*)$ https://2daygeek.com/$1 [R=301,L]

# Example - 6 #
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.2daygeek\.com [NC]
RewriteRule (.*) https://2daygeek.com/$1 [R=301,L] 

# Example - 7 #
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.(([a-z0-9_]+\.)?2daygeek\.com)$ [NC]
RewriteRule .? http://%1%{REQUEST_URI} [R=301,L]

 

 

این مطلب نیز ممکن است برای شما مفید باشد: تغییر آدرس وب سایت از HTTP به HTTPS در وردپرس

 

2) تغییر مسیر از آدرس بدون www به آدرس آغاز شده با www

در این بخش، 5 اسکریپت نمونه برای تغییر مسیر از آدرس‌های آغاز شده با www به آدرس‌های بدون www ارائه شده است.

# Example - 1 #
RewriteEngine On
RewriteCond %{HTTP_HOST} ^(?!www\.)(.+) [NC]
RewriteRule ^(.*) http://www.%1/$1 [R=301,NE,L]

# Example - 2 #
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]

# Example - 3 #
RewriteEngine on
RewriteCond %{HTTP_HOST} ^2daygeek\.com [NC]
RewriteRule (.*) https://www.2daygeek.com/$1 [R=301,L] 

# Example - 4 #
RewriteEngine on
RewriteCond %{HTTP_HOST} !^www\.2daygeek\.com
RewriteRule (.*) https://www.2daygeek.com/$1 [R=301,L] 

# Example - 5 #
RewriteEngine on
RewriteCond %{HTTP_HOST} ^([a-z.]+)?2daygeek\.com$ [NC]
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule .? http://www.%1example.com%{REQUEST_URI} [R=301,L]

 

3) تغییر مسیر https

در هر یک از دو دسته‌های بالا، برای تغییر مسیر به https، کافی است در هر یک از مثال‌های فوق، کاراکتر s را به HTTP اضافه نمایید.

 

4) تغییر مسیر sub-folder

چنانچه به عنوان مثال، شما وب‌سایت خود را مجدداً توسعه داده‌اید و مطالب آن در پوشه "/ demo" ذخیره شده‌اند و اکنون می‌خواهید در sub-folder به دامنه اصلی هدایت شوید، می‌توانید مثال‌های زیر را امتحان کنید.

# Example - 1 #
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1/demo/$1 [R=301,L]

# Example - 2 #
RewriteEngine On 
RewriteCond %{HTTP_HOST} ^(www\.)?2daygeek\.com$ [NC] 
RewriteRule ^$ http://%{HTTP_HOST}/demo/index.php [R,L]

# Example - 3 #
RewriteEngine On
RewriteRule ^$ /demo [L]

# Example - 4 #
RewriteEngine on
RewriteCond %{HTTP_HOST} ^2daygeek\.com$
RewriteRule (.*) https://www.2daygeek.com/$1 [R=301,L]
RewriteRule ^$ demo [L]
or
RewriteRule ^$ /demo [L,R=301]

# Example - 5 #
RewriteEngine On
RewriteRule ^(.*)$ /demo/$1 [L]

# Example - 6 #
RewriteEngine on
RewriteCond %{REQUEST_URI} ^/$
RewriteRule (.*) https://www.2daygeek.com/demo [R=301,L]

# Example - 7 #
RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www.)?2daygeek.com$
RewriteRule ^(/)?$ demo [L]

# Example - 8 #
RewriteEngine On
RewriteRule !^demo/ /demo%{REQUEST_URI} [L,R=301]

# Example - 9 #
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www.)?2daygeek.com$
RewriteCond %{REQUEST_URI} !^/demo/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /demo/$1
RewriteCond %{HTTP_HOST} ^(www.)?2daygeek.com$
RewriteRule ^(/)?$ demo/index.php [L]

# Example - 10 #
Options -Indexes +SymLinksIfOwnerMatch
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_URI} !^/demo/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /demo/$1 [L]

# Example - 11 #
Options -Indexes +SymLinksIfOwnerMatch 
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_URI} !^/demo/
RewriteCond %{HTTP_HOST} ^(www\.)?2daygeek\.
RewriteRule ^(.*)$ /demo/$1 [L]

 

 

منبع:

2daygeek