Aujourd’hui, tout ce que je voulais, c’était écrire une règle de redirection dans un sous-dossier, par exemple :.Vous entrez l’URL: example.com et vous êtes redirigé vers example.com/subfolder
Un tel souhait simple. J'ai essayé de trouver une solution sur Internet. Internet m'a dit d'ajouter un fichier .htaccess à la racine de htdocs avec:
RewriteEngine on
RewriteCond %{HTTP_Host} ^example\.com$
RewriteRule (.*) http://www.example.com/$1 [R=301,L]
RewriteRule ^$ subfolder [L]
J'ai fait ça. Mais pas de succès évidemment, ils ne m'ont pas dit que je devais décommenter le module dans httpd.conf :
LoadModule rewrite_module modules/mod_rewrite.so
Alors j'ai fait ça aussi. Pas de succès encore. Ils ne m'ont pas dit que je devais changer mon httpd.conf pour que le fichier .htaccess soit activé:
<Directory />
Options FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
</Directory>
DocumentRoot "c:/Apache24/htdocs"
<Directory "c:/Apache24/htdocs">
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
Encore une fois pas de succès, car je reçois cette erreur en entrant l'URL:
Interdit Vous n'êtes pas autorisé à accéder à/sur ce serveur.
Maintenant, je suis coincé et je ne peux plus trouver de solutions sur Internet. J'utilise Apache 2.4 sur ma machine Windows 7 pour des raisons privées.
Trouvé ma solution grâce à Erreur avec .htaccess et mod_rewrite
Pour Apache 2.4 et dans tous les fichiers * .conf (par exemple, httpd-vhosts.conf, http.conf, httpd-autoindex.conf ..etc), utilisez
Require all granted
au lieu de
Order allow,deny
Allow from all
Les directives Ordre et Autoriser sont obsolètes dans Apache 2.4.
Méthode WORKING {s'il n'y a pas d'autre problème que la configuration}
Par défaut, Appache est ne restreint pas l'accès depuis ipv4. (IP externe commune)
Ce qui peut limiter les configurations dans 'httpd.conf' (ou 'Apache2.conf' selon votre configuration Apache)
Solution:
Remplace tout:
<Directory />
AllowOverride none
Require all denied
</Directory>
avec
<Directory />
AllowOverride none
# Require all denied
</Directory>
supprimant ainsi toutes les restrictions données à Apache
Remplacez Require local
par Require all granted
dans le répertoire C:/wamp/www/
<Directory "c:/wamp/www/">
Options Indexes FollowSymLinks
AllowOverride all
Require all granted
# Require local
</Directory>
La solution est simple.
Si vous essayez d'accéder au serveur en utilisant votre adresse IP locale et que vous obtenez une erreur disant: Interdit, vous n'êtes pas autorisé à accéder à/sur ce serveur
Ouvrez simplement votre fichier httpd.conf à partir de (dans mon cas, C:/wamp/bin/Apache/apache2.2.21/conf/httpd.conf
)
Rechercher
<Directory "D:/wamp/www/">
....
.....
</Directory>
Remplacer Autoriser à partir de 127.0.0.1
à
Autoriser de tous
Enregistrez les modifications et redémarrez votre serveur.
Maintenant, vous pouvez accéder à votre serveur en utilisant votre adresse IP
Le problème réside dans le fichier https.conf!
# Virtual hosts
# Include conf/extra/httpd-vhosts.conf
L'erreur se produit lorsque le hachage (#) est supprimé ou modifié. Ces deux lignes doivent apparaître comme ci-dessus.
Trouvé ma solution sur Apache/2.2.15 (Unix).
Et merci pour la réponse de @QuantumHive:
D'abord: .__ j'ai tout trouvé
Order allow,deny
Deny from all
au lieu de
Order allow,deny
Allow from all
et alors:
J'ai réglé
#
# Control access to UserDir directories. The following is an example
# for a site where these directories are restricted to read-only.
#
#<Directory /var/www/html>
# AllowOverride FileInfo AuthConfig Limit
# Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
# <Limit GET POST OPTIONS>
# Order allow,deny
# Allow from all
# </Limit>
# <LimitExcept GET POST OPTIONS>
# Order deny,allow
# Deny from all
# </LimitExcept>
#</Directory>
Supprimer l'annotation "#" précédente à
#
# Control access to UserDir directories. The following is an example
# for a site where these directories are restricted to read-only.
#
<Directory /var/www/html>
AllowOverride FileInfo AuthConfig Limit
Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
<Limit GET POST OPTIONS>
Order allow,deny
Allow from all
</Limit>
<LimitExcept GET POST OPTIONS>
Order deny,allow
Deny from all
</LimitExcept>
</Directory>
ps. mon WebDir est:/var/www/html
Cela fonctionne pour moi sur Mac OS Mojave:
<Directory "/Users/{USERNAME}/Sites/project">
Options +Indexes +FollowSymLinks +MultiViews
AllowOverride All
require all granted
</Directory>