Удаление каталога из URL, пока все еще выполняется правильный файл

#.htaccess

#.htaccess

Вопрос:

У меня есть URL: example.com/files/console/ Я хочу, чтобы это было: example.com/console/ Но в то же время папка консоли имеет свой собственный набор URL-адресов.

Это мой текущий раздел перезаписи htaccess:

 <IfModule mod_rewrite.c>
    RewriteCond %{HTTPS} !=on
    RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d

    RewriteRule ^(.*)$ index.php [L,E=Cache-Control:max-age=12000]
    RewriteRule ^files/(.*)$ files/console/$1 [L,R=301]

    SetEnvIfNoCase Request_URI "(.*)" no-gzip -vary
</IfModule>
 

Это не работает. У меня есть 1 файл в корневом каталоге, который называется index.php который обрабатывает все запросы внешнего интерфейса сайта и работает безупречно. Затем я хочу создать серверную часть, сохраняя при этом структуру папок в порядке, следовательно, каталог /files/ .

Поэтому я хочу удалить файлы / каталог из URL-адреса where .com/console/blog.php прочитал бы .com/console/blog и запустил бы правильный файл…

Я уже обсуждал здесь так много тем, проверил «рабочий код» каждого, он просто не работает.

Комментарии:

1. Спасибо, что показали ваш файл htaccess, не могли бы вы, пожалуйста, более четко указать примеры URL-адресов, с какого URL-адреса на какой URL-адрес вы хотите переписать / перенаправить, что даст нам лучшее понимание вашего вопроса, спасибо.

2. @RavinderSingh13 Я упоминал об этом выше примера кода, но это example.com/files/console / — это место, где хранятся файлы. Я хочу показать в браузере, example.com/console/ У меня там несколько страниц, например index.php , add.php , edit.php и так далее, что все должно работать как example.com/console/edit например, без расширения php.

Ответ №1:

Вы можете попробовать использовать эти правила в корневом каталоге вашего сайта .htaccess:

 SetEnvIfNoCase Request_URI "(.*)" no-gzip -vary

RewriteEngine On
RewriteBase /

RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

RewriteRule ^console/ files%{REQUEST_URI} [L,NC]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}/$1.php -f
RewriteRule ^(. ?)/?$ $1.php [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php [L,QSA,E=Cache-Control:max-age=12000]