Удалить .php из URL в подкаталоге - PullRequest
0 голосов
/ 03 октября 2018

На CentOS 6 под управлением Apache 2.4 и DirectAdmin у меня есть веб-сайт WordPress.Помимо стандартной архитектуры WordPress, я хочу иметь несколько полустатических страниц, которые находятся в подкаталоге.

Файловая система имеет вид: /home/user/public_html/sub/static1.php

Требуемый URL-адрес имеет вид: https://domain/sub/static1

В настоящее время у меня нет проблем с открытием страниц с расширением .php.Но я хочу удалить это.Я попытался добавить какое-то правило перезаписи в .htaccess, но мне не удалось это сделать, поскольку запрос перенаправлен на домашнюю страницу.

Я пытался найти какое-то решение в Интернете, включая этот веб-сайт, но ничто не могло мне помочь.Я предполагаю, что DirectAdmin вовлечен в эту проблему.

Буду признателен за любую помощь

Ответы [ 3 ]

0 голосов
/ 13 октября 2018

Вы можете сделать это с помощью cgi.Функция cgi может связывать между URL-адресом клиента и файлами сервера.

Взгляните на Struts:

Struts "struts-config.xml" Объяснение действий, объяснение

Конфигурация распорок

Конфигурация распорок 2

0 голосов
/ 14 октября 2018

Вы можете использовать Apache mod_rewrite

Просто добавьте этот код в корневой каталог .htaccess

RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule !.*\.php$ %{REQUEST_FILENAME}.php [QSA,L]
0 голосов
/ 08 октября 2018

В вашем файле /home/user/public_html/sub/.htaccess используйте этот код:

Options -MultiViews
RewriteEngine on

# remove php
RewriteCond %{REQUEST_METHOD} !POST
RewriteCond %{REQUEST_URI} !/index\.php$
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php [NC]
RewriteRule ^ %1 [R=301,L]

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