Я использую стек MAMP и имею несколько настроек по умолчанию.
Я пытался избежать необходимости изменять условия перезаписи при удалении проектов из MAMP, поэтому я взглянул на динамические массовые виртуальные хосты. Из того, что я прочитал, это позволило бы мне обслуживать проекты из каждой соответствующей папки в веб-корне MAMP как поддомен localhost. При этом у каждого проекта будет собственный корень документа.
example.localhost станет Приложениями / MAMP / htdocs / example.localhost
Я получил все настройки, включив виртуальные хосты в httpd.conf, а затем добавив следующее в httpd-vhosts.conf.
#
# Use name-based virtual hosting.
#
NameVirtualHost *:8888
<VirtualHost *:8888>
ServerAdmin [email protected]
ServerName localhost
ServerAlias *.localhost
VirtualDocumentRoot /Applications/MAMP/htdocs/%0
RewriteLogLevel 3
RewriteLog "/Applications/MAMP/logs/rewrite.log"
<Directory "/Applications/MAMP/htdocs">
Options All
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
Здесь стоит упомянуть, что я установил порт по умолчанию в httpd.conf на 8888, чтобы избежать конфликтов.
Так что все это работало нормально, но когда я доходил до любой части моего проекта, которая использует файл .htaccess в каталоге и запускался mod_rewrite, он выполняет перезапись и выдает мне 404.
С простым примером добавления .php в конец ресурса с .htaccess из:
RewriteEngine On
RewriteCond% {REQUEST_FILENAME}! -F
RewriteRule ^ ([^.] +) $ $ 1.php [NC, L]
URL:
example.localhost / тест / API / ресурс
Должно стать что-то вроде:
/Applications/MAMP/htdocs/example.localhost/test/api/resource.php
Вместо этого становится:
/Applications/MAMP/htdocs/example.localhost/example.localhost
Кажется, это проблема с корнем документа, применяемым mod_rewrite, но я не уверен, как настроить это, чтобы убедиться, что корень документа правильный. Я знаю, что когда применяется .htaccess, он предполагает использование относительных путей, но я не использую косые черты или что-то подобное.
Здесь важно, чтобы мне не приходилось изменять файлы .htaccess в проектах, так как они должны будут продолжать работать при стандартной настройке apache.
Я не эксперт в этих конфигурациях, и я в значительной степени самоучка, когда дело доходит до Apache, поэтому любая помощь будет принята с благодарностью.
Спасибо
Задача ещё не решена.
Других решений пока нет …