2015-03-10 2 views
2

Правило перезаписи не работает на удаленном хосте в подкаталоге.Правило переопределения в подкаталоге

В стадии производства у меня был этот каталог 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?

+0

Является ли это файл .htaccess в корневом каталоге или в бета-папке? –

+0

Это в бета-папке. – sensation

ответ

1

Попробуйте это в /beta/.htaccess:

Options All -Indexes -MultiViews 
RewriteEngine on 
RewriteBase /beta/ 

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{DOCUMENT_ROOT}/beta/$1\.php -f [NC] 
RewriteRule ^(.+?)/?$ $1.php [L] 
+0

Спасибо за ответ, я просто попробовал, то же самое. Должен ли я добавить еще один файл внутри файла конфигурации apache2? – sensation

+0

.htaccess размещен в этом каталоге (бета). Я пробовал простой индекс: 'http: // example.com/beta/index', не работает. С '.php' ext он отлично работает. Я также попробовал другую версию, добавив/beta на последней строке, например, «RewriteRule^beta /(.+?)/?$ $ 1.php [L]». Нет разницы, ошибка 404. – sensation

+0

Ahhh, та же ошибка. – sensation

Смежные вопросы