Mam dziwny problem dla mnie. Zajmuję się tworzeniem aplikacji Zend Framework i mają tę strukturę plików:htaccess przekierowuje nieoczekiwanie do folderu
/
/application/
/public/
/public/.htaccess
/public/index.php
/public/js/
/public/style/
/public/profile/
/.htaccess
Chodzi mi domenę do folder /
Kiedy wprowadź adres example.com/profile/
idzie do profilu kontrolera i to jest dobre. Kiedy wprowadź adres example.com/profile
serwer przekierowuje mnie: example.com/public/profile/
chciałbym mieć rozwiązanie, że ilekroć żądanie: example.com/profile/
lub example.com/profile
tej samej stronie będą renderowane ale druga wersja daje mnie przekierowanie i nie wiem dlaczego.
Plik /.htaccess
jest:
RewriteEngine On
RewriteRule ^(.*)$ public/$1 [L]
Zadaniem tego pliku jest na trasie cały ruch z/do/publiczny, ale bez żadnych przekierowań.
Plik /public/.htaccess
jest:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]
Czy ktoś może mi pomóc z tym? Dzięki.
Naprawiłem to. Oto rozwiązanie, jeśli ktoś ma ten sam problem: Do tego trzeba ustawić następujące opcje i wyłączyć DirectorySlash naprawić
Options -Indexes FollowSymLinks
DirectorySlash Off
Teraz Apache nie powinna dodać końcowe ukośniki na końcu URI podczas wskazując katalogu . To również wyłącza przekierowanie do URI z końcowym ukośnikiem.
dlaczego nie spróbujesz 'RewriteEngine On RewriteCond% { REQUEST_FILENAME} -s [OR] RewriteCond% { REQUEST_FILENAME} -l RewriteRule^(. *) $ Public/index.php [L] 'w Twojej pierwszej wersji' .htaccess' –
Następnie mam błąd w dzienniku Apache: żądanie przekroczyło limit 10 wewnętrznych przekierowań – Marcin
Dodałem do zewnętrznego htaccess ten kod: RewriteEngine On (. *)RewriteRule^$ publiczny/1 $ RewriteCond% {REQUEST_FILENAME} -s [or] RewriteCond% {REQUEST_FILENAME} -l RewriteRule^* $ -.. [NC L] RewriteRule^* $ index.php [NC, L], a teraz mam wewnętrzny błąd serwera z powodu wielu wewnętrznych przekierowań ... – Marcin