Правило перезаписи не работает на удаленном хосте в подкаталоге.Правило переопределения в подкаталоге
В стадии производства у меня был этот каталог http://localhost/prj/
. Я использовал RewriteRule для «скрытия» и «загрузки» файлов PHP без расширения. Это .htaccess
я использовал:
Options +FollowSymLinks RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME}\.php -f RewriteRule ^(.*)$ $1.php
Итак, что работал отлично, я разработал проект, и я хотел, чтобы загрузить его на мой VPS для удаленного использования и тому подобное. Дело в том, что проект по-прежнему находится в стадии бета-тестирования, и я не хранил его в корневом каталоге ATM, а в подкаталоге/beta /, так что теперь этот мой URL-адрес выглядит следующим образом: http://example.com/beta/
.
Тем не менее, когда я пытался получить доступ к этому URL-адресу, index.php автоматически загружается, но когда я получаю доступ, например, файл play.php как http://example.com/beta/play
, он не работает, но он работал во время разработки проекта.
Это то, что я пробовал:
- Чтобы использовать RewriteBase в/бета/
RewriteBase /beta/
- Чтобы использовать различные варианты
Options All -Indexes -MultiViews
- Чтобы использовать каталог до фактического RewriteRule
RewriteRule ^/beta/(.*)$ $1.php
- Использование оперативников
[L, QSA]
Пример:
Options All -Indexes -MultiViews
RewriteEngine on
RewriteBase /beta/
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php [L,QSA]
Options All -Indexes -MultiViews
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^/beta/(.*)$ $1.php [L,QSA]
Возвращается ошибка 404 не найдены.
Редактировать: Я тоже должен иметь внутри apache2.conf?
Является ли это файл .htaccess в корневом каталоге или в бета-папке? –
Это в бета-папке. – sensation