Yii2 url Personnalisée de gestion. Obtenir de l'erreur 400
Bien, PHP fois.
Mon client veut que j'utilise Yii2 le cadre de son projet.
Je l'ai eu et en cours d'exécution. Pas de problème. J'ai utilisé le modèle avancé par le compositeur.
Ensemble de mon site web racine de /frontend/web, etc.
MAINTENANT, je veux utiliser ce format d'url
website.com/messages/ou website.com/messages/tom... etc.
Droit maintenant, la façon dont est configuré montre website.com/index.php?r=messages/index...
J'ai trouvé cette documentation...
https://github.com/yiisoft/yii2/blob/master/docs/guide/url.md
Mais je n'arrive pas à le faire directement.
Voici mes étapes...
J'ai configuré mon serveur apache pour pointer vers /usr/www/paie/frontend/web/
J'ai ajouté à mon dossier web un .fichier htaccess avec ce contenu.
RewriteEngine on
# If a directory or a file exists, use it directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# Otherwise forward it to index.php
RewriteRule . index.php
J'ai aussi ajouté le composant 'urlManager", comme dans le mode d'emploi. Il semble d'attraper la demande et de le modifier.
'components'=>[
'urlManager' => [
'class' => 'yii\web\UrlManager',
'enablePrettyUrl' => true,
'showScriptName' => 'false'
],
],
Par exemple si je tape website.com vous pouvez le voir, il ajoute /site/index de l'url. (sans l'url composant actif, il suffit d'ajouter /index.le php?site/index)
Alors, évidemment, il y a une modification à faire de l'url (via UrlManager) mais j'obtiens l'erreur 404
Je suis à court d'idées ici. Je suis nouveau en Php, Apache et Yii2. Toute aide Grandement appréciée.
Grâce
Si j'ajoute les composants code de stub pour mon fichier de config, il ne le fait pas.
Peu importe ce que je fais, il ne se montre jamais website.com/controller/action.... si j'ajoute le code du composant à ma config il n'a même pas le travail comme il se doit par défaut... ce qui veut dire, website.com/index.php?r=controller/action
'showScriptName' => 'false' il devrait être "showScriptName' => false
Désolé, c'était une faute de frappe ici, pas sur le code. Dans mon code il montre false à la place de "faux".
OriginalL'auteur Pepito Fernandez | 2014-04-10
Vous devez vous connecter pour publier un commentaire.
De faire de jolies URL de travail sur Yii 2.0 vous avez besoin de 2 choses:
1: Modifier
/frontend/config/main.php
(ou le principal config dans votre cas), et d'ajouter:2: Ajouter un .htaccess dans RACINE de VOTRE serveur WEB dossier.
Dans yii 2.0 avancée c'est PAS répertoire racine du projet, mais à la place:
/frontend/web
.htaccess exemple:
basic/config/web.php
. Merci.vouliez-vous dire
project_root_dir/config/web.php
?Oui, je souhaite que je pourrais modifier mon commentaire.
'showScriptName' => "false" devrait être "showScriptName' => false
merci @MoemenMostafa c'était un mauvais copier-coller.
OriginalL'auteur d.raev
il suffit de changer 'showScriptName' => "false" à "showScriptName' => false et il fonctionnera
OriginalL'auteur Goo
Si vous voulez utiliser comme cette
http://domain.com/controller_name/action_name
, vous ne devez permettre à de jolies url dans votre fichier de config :Maintenant, vous pouvez utiliser l'url que vous désirez " website.com/messages/ou website.com/messages/tom.
Si vous souhaitez utiliser la chaîne de requête dans l'url c'est la façon dont il fonctionne maintenant dans Yii 2
website.com/message?id=12
OriginalL'auteur KB9
Ok, voici la solution.
Dans les récents version d'Apache (à partir de 2.3.9), de la directive AllowOverride NONE par défaut. Les versions précédentes ont défini la directive AllowOverride à TOUS.
Yii2 suppose que la directive AllowOverride sera fixé à TOUS.
Si vous voulez lire tout le thread à Yii Forum, voici le lien
http://www.yiiframework.com/forum/index.php/topic/53295-url-manager-for-seo-friendly-url-404-error-code/
Je vous remercie pour votre aide et vos messages!
OriginalL'auteur Pepito Fernandez
Pour Yii2 de base, j'ai juste ajouté les codes ci-dessous à l' /myappfolder/config/web.php:
Également, ajouté .htaccess dans /myappfolder/web/:
Cela fonctionne bien pour moi. Espérons que cela aide d'autres personnes qui ont le même problème. : )
OriginalL'auteur puppyceceyoyo