В настоящее время я пытаюсь удалить расширения .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]
, чтобы нетвыгода.