Подтвердить что ты не робот

Htaccess перенаправляет index.php на root (включая субдомены)

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

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

Это, однако, не будет работать для субдоменов, пример ниже:

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

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

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

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

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

4b9b3361

Ответ 1

Сделайте это:

RewriteCond %{THE_REQUEST} ^.*/index\.php 
RewriteRule ^(.*)index.php$ /$1 [R=301,L] 

Ответ 2

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

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

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

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

Ответ 3

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

Моя версия на основе ThinkingMonkey и caiosm1005 отвечает:)

Ответ 4

Можно использовать этот

RewriteRule ^index\.php/(.*)$ http://www.example.com/$1 [R=301,L]