WHMCS .htaccess извлекает .php и игнорирует некоторые пути - PullRequest
0 голосов
/ 09 февраля 2019

В настоящее время я пытаюсь удалить расширения .php из моей установки WHMCS.Мой .htaccess в настоящее время выглядит следующим образом и выполняет свою работу:

# Ignore admin/manage directory
RewriteRule ^(manage|admin)($|/) - [L]

## BEGIN Strip PHP Extension from URLs ##
Options +FollowSymLinks +MultiViews
RewriteEngine On
RewriteBase /
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php [NC]
RewriteRule ^ %1 [R,L,NC]
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^ %{REQUEST_URI}.php [L]
## END Strip PHP from URLs ##

### BEGIN - WHMCS managed rules - DO NOT EDIT BETWEEN WHMCS MARKERS ###
<IfModule mod_rewrite.c>
RewriteEngine on    
RewriteBase /

# Redirect directories to an address with slash
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^(.+[^/])$  $1/ [R]

# Send all remaining (routable paths) through index.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# Determine and use the actual base
RewriteCond $0#%{REQUEST_URI} ([^#]*)#(.*)\1$
RewriteRule ^.*$ %2index.php [QSA,L]
</IfModule>
### END - WHMCS managed rules - DO NOT EDIT BETWEEN WHMCS MARKERS ###

# Force SSL
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTPS} !=on [NC]
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>

Однако у меня возникают проблемы с конкретными страницами, такими как / KnowledgeBase, которые в обычной установке WHMCS в любом случае не используют расширение .php.,Страница базы знаний загружается, но нажатие на статью меняет URL-адрес на что-то вроде следующего примера

/knowledgebase/2/Do-you-keep-backups.html

Проблема в том, что страница на самом деле не меняется и продолжает отображать список статей, как будто ябыл только на / базе знаний.Поэтому я пытаюсь опустить этот путь (среди прочего, например, / download) в правилах перезаписи .htaccess, которые лишают расширения .php.

Я пытался использовать RewriteCond %{REQUEST_URI} !^(.*/)?knowledgebase\.php$ [NC] и RewriteCond %{REQUEST_URI} !^(.*/)?knowledgebase$ [NC], чтобы нетвыгода.

...