htaccess перенаправляет index.php в корневой каталог (включая поддомены)

Я пытаюсь перенаправить файлы index.php в корень /, я поискал и нашел несколько фрагментов кода, похожих на:

RewriteCond %{THE_REQUEST} ^.*/index.php 
RewriteRule ^(.*)index.php$ http://www.domain.com/$1 [R=301,L] 

Однако это не сработает для поддоменов, пример ниже :

  1. У меня есть субдомен: subdomain.domain.com
  2. Пользователь посещает http://subdomain.domain.com/index.php
  3. Используя htaccess выше, они перенаправляются на http://www.domain.com/, а не http://subdomain.domain.com/

Кто-нибудь знает, как настроить указанный выше htaccess, чтобы он учитывал поддомен и перенаправлял их в соответствующее место?

например если пользователь посещает http://subdomain.domain.com/index.php , он переходит на http://subdomain.domain.com/

Бонусные баллы:

Is есть ли htaccess, который может просто применить это правило ко всем папкам?

Итак, для любой папки с index.php они будут просто перенаправлены в ее корень, например http://subdomain.domain.com/folder1/folder2/index.php автоматически перейдет на http://subdomain.domain.com/folder1/folder2/

29
задан Alex 20 February 2012 в 23:19
поделиться

1 ответ

Я основал следующий код на ответе @ ThinkingMonkey

RewriteRule ^(.*)index\.(php|html?)$ /$1 [R=301,NC,L]

Он перенаправляет URI, заканчивающиеся на index.php , index.htm или index.html - / . Работает и с подкаталогами.

Также обратите внимание на флаг NC. Это делает его без учета регистра. Так что это работает, даже если URI указан в верхнем регистре, например INDEX.PHP .

15
ответ дан 28 November 2019 в 00:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: