Как написать .htaccess для пересылки всех запросов в index. php в любую подпапку, в которой они были сделаны - PullRequest
1 голос
/ 28 мая 2020

Я бы хотел, чтобы каждый запрос был перенаправлен в индекс. php, но с учетом того, в какой подпапке сделан запрос. Я могу отправить их все в go по индексу root. php, но не к index. php в конкретной подпапке.

Пример:
site.com/testurl > site.com/index.php
site.com/admin / testurl > site.com/admin/index.php
site.com/randomname/randomname > site.com/randomname/index.php

Я не хочу жестко кодировать какие-либо подпапки, чтобы они оставались динамическими c.

В настоящее время у меня есть это как мой файл .htaccess:

DirectoryIndex index.php

# enable apache rewrite engine
RewriteEngine on

RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1%{REQUEST_URI} [R=301,QSA,NC,L]

# Deliver the folder or file directly if it exists on the server
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

# Push every request to index.php
RewriteRule ^(.*)$ index.php [QSA]

Дополнительный кредит (Не уверен, возможно ли это даже с .htaccess): сделать так, чтобы он знал, находится ли индекс. php в подкаталоге, а если нет, то возвращается к root индексу. php

1 Ответ

1 голос
/ 28 мая 2020
# Determines whether the request doesn't end with index.php:
RewriteCond %{REQUEST_URI} !/index.php$

# Redirect to the requested path, followed by index.php:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)/(.*)$    /$1/index.php [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !/index.php$
RewriteRule ^(.*) /index.php [L]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...