Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [ZendFramework]Wiele kontrolerów
qdlaty88
post 11.11.2013, 22:27:00
Post #1





Grupa: Zarejestrowani
Postów: 21
Pomógł: 2
Dołączył: 11.09.2013

Ostrzeżenie: (0%)
-----


Witam! Chciałbym prosić Was o pomoc lub wskazówkę w rozwiązaniu niniejszego problemu:

Zbudowałem aplikację przeznaczoną dla 3 użytkowników (3 layouty i 3 kontrolery). Cała aplikacje działa bez zarzutu pod warunkiem, że odpalam ją bezpośrednio z linku: http://localhost/mojprojekt/public/index.php.

W zależności od typu użytkownika adresy url poszczególnych akcji wyglądają wtedy tak:
http://localhost/mojprojekt/public/index.php/controller/akcja.

Jakoś bardzo mi to nie przeszkadza, ale o ile dobrze się orientuję powinno to działać bez index.php w adresie url. Tym bardziej, że jak wystartuję aplikację z http://localhost/mojprojekt/public
to mam dostęp do wszystkich akcji controllera index (http://localhost/mojprojekt/public/index/action) ale próba przejścia do akcji innego controllera kończy się błędem 404 i logiem na serwerze:
  1. [Mon Nov 11 21:42:37 2013] [error] [client 127.0.0.1] File does not exist: /var/www/MatchBoxCamera/public/user, referer: <a href="http://localhost/MatchBoxCamera/public/" target="_blank">http://localhost/MatchBoxCamera/public/</a>


Wszystkie kontrolery czy akcje tworzyłem zf toolem, struktura katalogów jest podręcznikowa i te pliki tam są. Jak macie Państwo pomysł jak to rozwiązać lub gdzie szukać przyczyny proszę pisać. Będę wdzięczny za każdą sugestię wink.gif
Go to the top of the page
+Quote Post
crafter
post 12.11.2013, 09:22:14
Post #2





Grupa: Zarejestrowani
Postów: 72
Pomógł: 2
Dołączył: 14.02.2007

Ostrzeżenie: (0%)
-----


a masz włączony mod_rewrite itp?
Go to the top of the page
+Quote Post
qdlaty88
post 12.11.2013, 12:25:07
Post #3





Grupa: Zarejestrowani
Postów: 21
Pomógł: 2
Dołączył: 11.09.2013

Ostrzeżenie: (0%)
-----


Cytat(crafter @ 12.11.2013, 09:22:14 ) *
a masz włączony mod_rewrite itp?


Tak. Ustawiłem go podczas instalacji zenda a gdy pojawił się problem z urlami to właśnie to sprawdzałem jako pierwsze ale dla pewności możesz zajrzeć w te ustawienia:

w konsoli:
Cytat
marcin@marcin-desktop:~$ cat /etc/apache2/mods-available/rewrite.load
LoadModule rewrite_module /usr/lib/apache2/modules/mod_rewrite.so
marcin@marcin-desktop:~$ sudo a2enmod rewrite
[sudo] password for marcin:
Module rewrite already enabled
marcin@marcin-desktop:~$ ls -al /etc/apache2/mods-enabled/rewrite.load
lrwxrwxrwx 1 root root 30 lis 11 22:15 /etc/apache2/mods-enabled/rewrite.load -> ../mods-available/rewrite.load


/etc/apache2/sites-available/default
Cytat
<VirtualHost *:80>
ServerAdmin webmaster@localhost

DocumentRoot /var/www
<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>

ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride All
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>

ErrorLog ${APACHE_LOG_DIR}/error.log

# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn

CustomLog ${APACHE_LOG_DIR}/access.log combined

Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride All
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>

</VirtualHost>


i .htaccess z katalogu public aplikacji:
Cytat
SetEnv APPLICATION_ENV development
RewriteEngine On
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ /index.php [NC,L]
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
Go to the top of the page
+Quote Post
freemp3
post 12.11.2013, 12:33:05
Post #4





Grupa: Zarejestrowani
Postów: 467
Pomógł: 77
Dołączył: 6.09.2008
Skąd: Miechów / Kraków

Ostrzeżenie: (0%)
-----


Dla swojej strony w Options usuń MultiViews.

Ten post edytował freemp3 12.11.2013, 12:33:47


--------------------
Niemożliwym jest stworzenie czegokolwiek idiotoodpornego, ponieważ idioci są wyjątkowo pomysłowi.

https://www.aroch.pl
https://themeforest.net/user/aroch
https://www.astroblog.aroch.pl
https://www.4geeks.pl
Go to the top of the page
+Quote Post
qdlaty88
post 12.11.2013, 13:55:56
Post #5





Grupa: Zarejestrowani
Postów: 21
Pomógł: 2
Dołączył: 11.09.2013

Ostrzeżenie: (0%)
-----


Cytat(freemp3 @ 12.11.2013, 12:33:05 ) *
Dla swojej strony w Options usuń MultiViews.


Jeśli chodzi Ci o opcje w /etc/apache2/sites-available/default to jedynym efektem jest wtedy to, że do akcji z kontrolera index też nie da się wejść bez index.php w adresie url.

Nie robiłem virtualhosta dla tej aplikacji.
Go to the top of the page
+Quote Post
freemp3
post 12.11.2013, 14:17:41
Post #6





Grupa: Zarejestrowani
Postów: 467
Pomógł: 77
Dołączył: 6.09.2008
Skąd: Miechów / Kraków

Ostrzeżenie: (0%)
-----


Chodziło mi o ten wpis:
Kod
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>

Spróbuj usunąć w ogóle Options i sprawdź co się będzie działo.
Dodaj też RewriteBase do pliku .htaccess.


--------------------
Niemożliwym jest stworzenie czegokolwiek idiotoodpornego, ponieważ idioci są wyjątkowo pomysłowi.

https://www.aroch.pl
https://themeforest.net/user/aroch
https://www.astroblog.aroch.pl
https://www.4geeks.pl
Go to the top of the page
+Quote Post
qdlaty88
post 12.11.2013, 14:56:52
Post #7





Grupa: Zarejestrowani
Postów: 21
Pomógł: 2
Dołączył: 11.09.2013

Ostrzeżenie: (0%)
-----


Kod
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride All
Order allow,deny
allow from all
</Directory>

Działa tak jak opisałem w poprzednim poście.

Cytat
Spróbuj usunąć w ogóle Options i sprawdź co się będzie działo.

Dostaję info:
Kod
You don't have permission to access / on this server.

i tak aż do katalogu public aplikacji gdzie działa tylko akcja index kontrolera index i nic poza tym (chyba, że jest index.php w url).

Cytat
Dodaj też RewriteBase do pliku .htaccess.

Kod
SetEnv APPLICATION_ENV development
RewriteEngine On
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ /index.php [NC,L]
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d

RewriteBase /var/www/MatchBoxCamera/public

i nadal to samo co wcześniej.

Pytanie brzmi czy da się to ustawić tak, żeby nie było 'index.php' w adresie url?

Dzięki za zainteresowanie problemem wink.gif

Ten post edytował qdlaty88 12.11.2013, 15:15:38
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 20.06.2025 - 11:10