J'utilise Kohana Framework 3.x. Mon serveur Web est Apache et j'utilise des hôtes virtuels, car je gère plus d'un site Web avec mon serveur.Apache: hôte virtuel et réécriture d'URL dans httpd.conf pour Kohana Framework
Mon httpd.conf ressemble à ceci:
<VirtualHost *:80>
ServerName www.myPage1.com
ServerAlias myPage1.com
DocumentRoot /var/www/myPage1
</VirtualHost>
<VirtualHost *:80>
ServerName www.myPage2.com
ServerAlias myPage2.de
DocumentRoot /var/www/myPage2
</VirtualHost>
Dans Kohana chaque requête http doit aller au premier index.php. Parce que je ne aime pas ces URL laid que tout commence par index.php (par exemple www.myPage1.com/index.php/item/detail/itemId) J'ai utilisé le fichier .htaccess suivant qui a parfaitement fonctionné
# Turn on URL rewriting
RewriteEngine On
# Installation directory
RewriteBase/
# Protect hidden files from being viewed
<Files .*>
Order Deny,Allow
Deny From All
</Files>
# Protect application and system files from being viewed
RewriteRule ^(?:application|modules|system)\b.* index.php/$0 [L]
# Allow any files or directories that exist to be displayed directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# Rewrite all other URLs to index.php/URL
RewriteRule .* index.php/$0 [PT]
Je voudrais maintenant ne plus utiliser un fichier. Htaccess et à la place mettre toute la logique de réécriture dans mon fichier httpd.conf. Ce qui suit me donne un "400 Bad Request"
<VirtualHost *:80>
RewriteEngine On
<Files .*>
Order Deny,Allow
Deny From All
</Files>
RewriteRule ^(?:aplication|modules|system)\b.* index.php/$0 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php/$0 [PT]
ServerName www.myPage2.com
ServerAlias myPage2.com
DocumentRoot /var/www/myPage2
</VirtualHost>
Qu'est-ce que je fais mal? L'aide serait appréciée!
Je pensais avoir juste besoin d'un RewriteBase lorsque j'utilise l'URL Rewriting par répertoire avec un fichier .htaccess. Si mon RewriteBase est comme "/", je ne peux pas commencer à démarrer Apache et obtenir une erreur. Je ne veux plus utiliser le fichier .htaccess parce que je veux que tous les paramètres soient centraux dans mon httpd.conf –
Il y a beaucoup de choses qui ne vont pas avec '.htaccess', le principal étant un accès disque supplémentaire pour chaque répertoire sous le racine du document dans le chemin de requête, sur chaque requête. Votre serveur fonctionnera beaucoup plus rapidement si vous activez la numérisation de ces fichiers ('AllowOverride None'). –