У меня есть один веб-сайт, и он перенаправляет на пять различных индексных файлов случайным образом с помощью php.
Я хочу перенаправить его с помощью .Htaccess , так же, как и перенаправление php.
Я обнаружил, что с помощью htaccess мы можем перенаправить URL-адреса, как,
Redirect 301 / http://www.xyzdomain.com/index.php
или же
Redirect 302 / http://www.xyzdomain.com/index.php
В настоящее время я делаю это с использованием PHP случайный массив.
<?php
$urls = array("index.php",
"index2.php",
"index3.php",
"index4.php",
"index5.php");
$url = $urls[array_rand($urls)];
header("Location: http://www.xyzdomain.com/$url");
?>
Вопрос: Как перенаправить несколько индексов случайным образом, используя правила .htaccess?
Не полностью случайный, как PHP-код, но вы можете достичь чего-то похожего, используя mod_rewrite
с помощью TIME_SEC
переменная, которая представляет значение секунд текущего времени. Рассмотрим этот код:
RewriteEngine On
RewriteBase /
# dont rewrite more than once
RewriteCond %{ENV:REDIRECT_STATUS} .+
RewriteRule ^ - [L]
# redirect all requests for php file to index file if %{TIME_SEC} is 0, 10, 20, 30, 40, 50
# or if %{TIME_SEC} is 1, 11, 21, 31, 41, 51
RewriteCond %{TIME_SEC} [01]$
RewriteRule ^.+?\.php$ index.php [L,NC]
# redirect all requests for php file to index file if %{TIME_SEC} is 2, 12, 22, 32, 42, 52
# or if %{TIME_SEC} is 3, 13, 23, 33, 43, 53
RewriteCond %{TIME_SEC} [23]$
RewriteRule ^.+?\.php$ index2.php [L,NC]
# redirect all requests for php file to index file if %{TIME_SEC} is 4, 14, 24, 34, 44, 54
# or if %{TIME_SEC} is 5, 15, 25, 35, 45, 55
RewriteCond %{TIME_SEC} [45]$
RewriteRule ^.+?\.php$ index3.php [L,NC]
# redirect all requests for php file to index file if %{TIME_SEC} is 6, 16, 26, 36, 46, 56
# or if %{TIME_SEC} is 7, 17, 27, 37, 47, 57
RewriteCond %{TIME_SEC} [67]$
RewriteRule ^.+?\.php$ index4.php [L,NC]
# redirect all requests for php file to index file if %{TIME_SEC} is ending in 8, 9
RewriteCond %{TIME_SEC} [89]$
RewriteRule ^.+?\.php$ index5.php [L,NC]
Чтобы перенаправить отдельные файлы, например example.com/oldfile.htm, в newfile.htm, вы можете использовать перенаправление 301 следующим образом: http://www.inmotionhosting.com/support/website/redirects/setting-up-a-301-permanent-redirect-via-htaccess