У меня есть эта конфигурация для моего site.com
<VirtualHost *:443>
ServerAdmin webmaster@site.com
ServerName site.com
ServerAlias www.site.com
DocumentRoot /websites/site.com
Alias /project "/websites/site.com/project/public"
<Directory "/websites/site.com/project/public">
Options FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
ErrorLog /projects/logs/errors/site.com.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Мне нужно чтобы иметь возможность делать следующее:
DocumentRoot /websites/site.com
- Проверяйте /websites/site.com/project/public
- Проверяйте /websites/site.com/project/public/page.php
- Не работает (страница не найдена) Вот .htaccess в /websites/site.com/project/public
Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+?)/?$ $1.php [NC,L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteCond %{THE_REQUEST} ^(.+)\.php([#?][^\ ]*)?\ HTTP/
RewriteRule ^(.+)\.php$ /$1 [R=301,L]
# Block access to hidden files and directories.
RewriteCond %{SCRIPT_FILENAME} -d [OR]
RewriteCond %{SCRIPT_FILENAME} -f
RewriteRule "(^|/)\." - [F]
Кроме того, если я перейду на site.com/project/page.php
, он будет работать нормально, но, очевидно, я хочу, чтобы расширение исчезло.
Все работает нормально, если я переместил все файлы из директории public y в /websites/site.com/project/public
, и поместите их только в /websites/site.com/project
, но я не хочу этого делать, потому что я хочу, чтобы весь мой код находился за пределами корня веб-сайта.
Проблема в том, что мне нужно показать проект в Интернете, и поскольку у меня еще нет домена для него, мне нужно поместить его в подкаталог существующего домена.
Я знаю, что есть проблема с Псевдонимом
в конфигурации виртуального хоста и, возможно, с .htaccess
, но я не могу понять что.
Любая помощь приветствуется,
Спасибо!
Мне удалось решить эту проблему, переместив /websites/site.com/project
в /websites/project
, фактически переместив весь веб-сайт из подкаталог site.com
.
Затем в файле конфигурации я заменил все пути, чтобы они указывали на это новое место, и все просто заработало.
Не могу сказать, что полностью понимаю почему.