7
votes

Problème simple avec mod_rewrite dans le cadre sans gras

J'essaie de configurer et d'apprendre le cadre sans gras pour PHP. http://fatfree.sourceforge.net/

C'est assez simple de configurer et je l'utilise sur ma machine à l'aide de MAMP. P>

J'ai pu obtenir l'exemple "Hello World" en cours d'exécution juste FIN: P>

# Enable rewrite engine and route requests to framework
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-l
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php [L,QSA]

# Disable ETags
Header Unset ETag
FileETag none

# Default expires header if none specified (stay in browser cache for 7 days)
<IfModule mod_expires.c>
ExpiresActive On
ExpiresDefault A604800
</IfModule>


2 commentaires

@DC Pas de chance, je ne suis pas sûr d'où même de gâcher pour le réparer.


Nouveau site sans gras: BCOSCA.GITUB.COM/FATFREE


8 Réponses :


1
votes

Dans votre .htaccess, vous avez 'index.php' il a besoin d'une barre oblique ... '/index.php'

LoadModule rewrite_module modules/mod_rewrite.so


pen, je viens d'avoir une autre pensée .. il est possible que possible que mod_rewrite soit intégré il peut y avoir une bizarrerie avec le serveur, ce qui lui permet de ne pas réécrire. p>

Si la voie globale ci-dessous ne fonctionne pas que vous pouvez tester la réécriture P>

#LoadModule rewrite_module modules/mod_rewrite.so


9 commentaires

Quelle est l'adresse que vous utilisez pour accéder à propos? domain.com/about/index.php ou domain.com/about ou?


C'est également que votre fichier htaccess exact ou utilisez-vous ?


Et aussi: Avez-vous vérifié vos informations sur le cheminement / route car le manuel couvre: gatsfree.sourceforge.net (le section intitulée: Impossible de faire fonctionner l'exemple?)


Je suis en utilisant http: // localhost: 80 / À propos de sur la chose de route ... / fonctionne mais / à propos ne le fait pas, et mes fichiers sont dans le répertoire racine. Et oui c'est mon exact .htacess


Si je vais à http: // localhost: 80 / index.php i Obtenir un 404` car index.php attend soit / ou < Code> / À propos de Cependant seulement / fonctionne ..


Avez-vous testé la réécriture avec la ligne Google que j'ai mentionnée dans ma réponse? Je suppose que vous utilisez des fenêtres afin que cela puisse être un problème de configuration


Vient de vous voir autre commentaire ... hmm ... quelle installation utilisez-vous?


J'utilise MAMP. Donc sur mon mac.


Encore une fois, je demande: avez-vous testé la réécriture avec la ligne Google que j'ai mentionnée plus tôt?



2
votes

Si vous exécutez F3 sous un sous-dossier, vous devez modifier la réécritureBase dans .htaccess pour correspondre au dossier.


0 commentaires

1
votes

J'ai frappé ma tête sur ceci pendant 2 jours. J'ai débogué HACTACS et PHP les deux. Le problème réel est celui-ci:

Si vous avez copié le fichier .htaccess de leur téléchargement zip FATFREE-1.4.4, ce n'est pas .htaccess strong> Son htaccess strong> (. Est manquant ) Renommez-vous simplement ce fichier à .htaccess de HTACTACSESS et tout fonctionnera parfaitement comme il conviendra dans le document !!! P>

J'utilise ces travaux .htaccess pour les dossiers non-racines TOO P>

Options -Indexes 
IndexIgnore *    

RewriteEngine On
RewriteCond $1 !^(index\.php|images|main\.css|form\.css|favicon\.ico|robots\.txt|sitemap\.xml)
RewriteRule ^(.*)$ index.php/$1 [L,QSA]


3 commentaires

J'utilise MAMP et vous ne pouvez pas démarrer les noms de fichiers avec . sur Mac OS, j'ai essayé votre .htaccess mais pas de chance.


Alors, êtes-vous capable d'utiliser .htaccess ou pas? Sans hocanal, cette chose ne fonctionnera pas. Également jamais travaillé sur Mac, je ne peux donc pas vraiment aider ici :(


Terminal ouvert, CD dans le répertoire avec Htaccess In et Type MV HTAccess .htaccess



11
votes

Alors mon ami m'a réellement aidé avec ce problème. J'ai couru dans le même problème, mais j'utilise fondamentalement, j'utilise MAMP aussi et que tous mes fichiers sans gras dans un FATFREE DIR dans les fichiers htdocs de MAMP.

La solution est que vous devez modifier le rewritebase pour pointer / [dirname] / au lieu de juste / , puis change rewriterule à / [DirName] /index.php .

My .htaccess ressemble à ceci: xxx

Après cela est défini, vous pouvez suivre l'exemple. Dans le Doc sans gras exactement et cela fonctionnera comme un charme. Cela m'a complètement ticulé pendant un moment et c'était tout ce dont il était nécessaire. De plus, si vous utilisez MAMP, éditez le fichier httpd.conf dans / applications / mamp / conf / apache et assurez-vous de modifier les éléments suivants: xxx

à xxx

modifier fondamentalement Aucun à tout .


5 commentaires

Merci j'ai essayé tout ça mais toujours pas de chance. / fonctionne mais pas / n'importe quoi


A fait le tour pour moi. Merci beaucoup. [Code] RewriteEngine sur RewriteBase / FATFREE / REWRITECOND% {REQUIRE_FILENAME}! -F REWRITECOND% {REQUAT_FILENAME}! -D REWRITÉTRULE. * /FATFREE/IDEX.PHP [L, QSA] [/ code] [CODE] [CODE] /fatfree-2.0.0/lib/base.php '; F3 :: route ('get /', 'home'); Fonction Home () {Echo 'Bonjour, Monde!'; } F3 :: Run (); [/code]


merci j'étais incapable de le faire fonctionner dans un autre cadre


@Geomorillo Je pense que vous avez un problème avec le dossier et la permission de fichiers et le propriétaire. Assurez-vous que le propriétaire est www-Data: www-Data et tous les dossiers ont 755 et tous les fichiers ont 644 autorisation.


En fait, j'ai passé et fait mon propre cadre MVC, mais je suis sûr que j'ai vérifié les autorisations de dossier et elles étaient ok



0
votes

Cette réponse peut être trop tard pour vous, mais j'avais le même problème hier.

On dirait que le problème est Apache ne réécrit pas les URL. J'ai eu le même problème lorsque vous essayez d'obtenir F3 en cours d'exécution sur OSX 10.7 - l'itinéraire " get / " fonctionnerait mais non le " get / foo

  1. Assurez-vous que .htaccess a été défini comme vous l'avez.
  2. S'assurer que mod_rewrite.so a été activé dans Apache's httpd.conf
  3. Assurez-vous que vous définissez allemoverride tout (le mien n'en était pas) pour votre répertoire Web dans httpd.conf (plus loin dans le fichier).
  4. redémarrez Apache

    Sans étape 3, Apache ignorera les directives de réécriture. J'ai découvert cela en modifiant les permaliens sur une installation WordPress locale et ils ont échoué indiquant que le problème était la configuration Apache, pas F3.


0 commentaires

1
votes

Remarque: Si vous souhaitez appeler votre fichier .htaccess quelque chose d'autre, vous pouvez modifier le nom du fichier à l'aide de la directive AccessFileName. Par exemple, si vous préférez appeler le fichier .config, vous pouvez mettre les suivants dans votre fichier de configuration serveur: xxx

ici


0 commentaires

0
votes

Je cours avec une pile de mamp. J'ai renommé leur dossier de "FATFREE-MASTER" à "F3". Je mets ce dossier à côté de HTDOCS. Leur fichier .htaccess (maintenant à l'intérieur de MAMP / F3 / LIB) reste intact.

My .htaccess (dans mon sous-dossier Web) est standard de stock selon leur exemple: xxx

J'espère que cela aide quelqu'un.


2 commentaires

Il n'est pas clair, du moins pour moi, comment cela se rapporte à la question. Pourriez-vous s'il vous plaît élaborer?


@Alex je vais répondre une fois seulement. J'ai trouvé ce post parce que j'avais du mal à trouver leur échantillon pour travailler, comme l'a expliqué de manière embarrassante ci-dessus (bien que cela ait été utile, ils comprenaient les étiquettes, mais ma mauvaise). Ensuite, dans leur guide, il n'est pas toujours clair à quel fichier .htaccess ils se réfèrent. Alors j'ai effacé cela aussi. Enfin, ils n'ont offert aucune instruction spécifique à map / xamp. Par conséquent, je le sentais pertinent et peut-être utile pour conseiller comment j'ai déployé leur cadre.



0
votes

J'ai eu le même problème et je l'ai résolu en déplaçant le fichier .htaccess au répertoire racine du projet FATFREE.

Créer un fichier .htaccess avec Code fédérateur au répertoire racine xxx


0 commentaires