Eu tenho um aplicativo FuelPHP que estou tentando configurar para estender um site existente (vamos chamá-lo example.com
). A instalação do FuelPHP está em um diretório chamado listings
dentro do DocumentRoot
. No entanto, o principal index.php
arquivo para o aplicativo está localizado em um subdiretório de listings
chamado public
, então o caminho real para o index.php
arquivo é <DocumentRoot>/listings/public/index.php
. Os recursos estáticos (JavaScript, CSS e imagens) para o aplicativo estão em subdiretórios do public
diretório também.
Eu quero que as pessoas possam acessar o aplicativo em /properties
. Além disso, haverá solicitações feitas para outras páginas (como /properties/admin
), bem como solicitações de ativos estáticos (como /properties/assets/css/style.css
).
Eu tenho essa coisa de 90% de trabalho. .htaccess
arquivo no DocumentRoot
se parece com isso:
RewriteEngine On
RewriteRule ^properties/?(.*)$ /listings/public/index.php/$1 [L]
Dentro de public
diretório, existe outra .htaccess
arquivo que se parece com isso:
Options +FollowSymLinks -Indexes
RewriteEngine on
# Send request via index.php (not if its a real file or folder)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
Eu definir o $base_url
na configuração FuelPHP para http://example.com/properties/
. Todas as URLs dos ativos estáticos estão aparecendo da maneira que eu esperaria, por exemplo, o caminho para o meu bootstrap.css
arquivo aparece como http://example.com/properties/assets/css/bootstrap.css
. Isso é o que eu espero. No entanto, em vez de o Apache pegar o ativo estático, ele está executando a solicitação através do FuelPHP index.php
arquivo, resultando em um 404.
Eu acho que preciso adicionar um RewriteCond
ao .htaccess
arquivo que está no DocumentRoot
, mas eu não sei exatamente se isso é correto, ou o que isso RewriteCond
pareceria.
Como faço para ajustar meu .htaccess
arquivo (s) para que eu possa acessar ativos estáticos como http://indyapm.com/properties/assets/css/bootstrap.css
que está localizado na <DocumentRoot>/listings/public/assets/css/bootstrap.css
?
Respostas:
1 para resposta № 1Eu acredito que o que você quer é um RewriteBase
RewriteEngine On # after this
RewriteBase /properties/ # insert this
Isso, ter sua configuração principal configurada com o URL base correto, deve funcionar.