Я разрабатываю небольшое решение CMS с Perch. В настоящее время он работает на WampServer на моей локальной машине разработки.Удаление расширений .php с вывода
Поскольку Perch не предоставляет дружественные URL-адреса из коробки, я хотел бы реализовать это, в то время как каталог/perch остается нетронутым.
До сих пор у меня есть переписывание часть работает т.е. запрос на /blog.php будет 301 к/блог, и/блог будет переписать /blog.php, используя правила ниже:
Options +FollowSymLinks -MultiViews
RewriteEngine On
# Rewrites domiain.com/file to domain.com/file.php
RewriteCond %{REQUEST_URI} !^/perch
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php
# Redirects domain.com/file.php to domain.com/file
RewriteCond %{REQUEST_URI} !^/perch
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteCond %{REQUEST_URI} ^(.+)\.php$
RewriteRule (.*)\.php$ /$1 [R=301,L]
Тем не менее, я все еще остался с расширением .php в выводе HTML. Я попытался добавить следующее в мой файл .htaccess:
AddOutputFilterByType SUBSTITUTE text/html
#Replace all .php extensions
Substitute s|.php||ni
#Original blog pattern /blog/post.php?s=2014-11-18-my-first-blog-post
Substitute s|blog/post\?s=(\w+)|blog/$1|i
Однако это применяется во всем мире, то есть даже ссылки в папке/окуня. Я никак не мог найти условие, чтобы применить его ко всему, кроме папки/perch - есть ли такой способ?
Я также посмотрел документацию ProxyPass/ProxyReversePass, но это похоже на излишнюю замену HTML-кода на странице.
Любая помощь была бы принята с благодарностью.
С наилучшими пожеланиями, dotdev