Po kilku tygodniach przerwy na inne zobowiązania, wróciłem do mojej pracy w Yii2, uciekłem composer update
w moich bieżących projektach i dostaję błędy 404 na wcześniej działających stronach w @frontend/views/site/pages
.
Mój menedżer adresów URL to ...
"urlManager" => [
"enablePrettyUrl" => true,
"showScriptName" => false,
"suffix" => ".p2m", // confuses bad guys
"rules" => [
"<controller:w+>/<id:d+>" => "<controller>/view",
"<controller:w+>/<action:w+>/<id:d+>" => "<controller>/<action>",
"<controller:w+>/<action:w+>" => "<controller>/<action>",
"<view:[a-zA-Z0-9-]+>/"=>"site/page",
]
],
Przykład linii z mojego paska nawigacyjnego to ...
["label" => "Some Page", "url" => ["/site/page", "view" => "somepage"]],
Tworzenie adresu URL ...
http://example.com/site/page.p2m?view=somepage
Przed dzisiejszym dniem wszystko się udało i wyrywam sobie włosy, próbując zrozumieć, dlaczego tak się nie dzieje.
TIA, Pedro
Odpowiedzi:
1 dla odpowiedzi № 1Być może myliłeś nazwy akcji?
Proszę pokazać swój actionPage () w SiteController. Być może masz stronę akcjis() zamiast?
Możesz również upiększyć swój kod.
actionPage($view)
Następnie dodaj reguły
"site/page/<view:[w-]+>" => "<controller>/<action>",
I strona URL / strona / strona główna będzie działać.
Lepszym sposobem jest jednak uczynienie PageController i każdej strony osobną akcją.
Sprawdź też .htaccess i httpd.conf (jeśli używasz Apache) lub nginx config, aby upewnić się, że serwer działa poprawnie.