Comment définir le document racine d'un sous-répertoire à l'aide .htaccess et pas de VHost
Sur ma machine locale, les travaux suivants parfait:
<VirtualHost *:80>
##ServerAdmin [email protected]
DocumentRoot "C:/xampp/htdocs/website_1"
ServerName testpage.com/website_1
##ServerAlias www.recruitement.localhost
##ErrorLog "logs/dummy-host2.localhost-error.log"
##CustomLog "logs/dummy-host2.localhost-access.log" combined
</VirtualHost>
Mais Im l'hébergement de mon site web société d'hébergement appelé justhost.com et ils ne me permettent pas de modifier httpd-vhosts.conf ou httpd.conf. Maintenant tout mon site est codé en sorte que les fichiers sous website_1 référence à d'autres fichiers sous website_1 à l'aide de simple barre oblique "/" sens website_1 est traitée comme racine du document. Cela fonctionne parfaitement sur la machine locale, mais lorsqu'il est transféré à l'hôte, il me donne des erreurs de serveur parce que je ne trouve pas les fichiers depuis son en essayant de localiser ces fichiers dans public_html
Par exemple:
public_html
- website_1
- script.php
- style.css
à l'intérieur de mon script.php:
<a href="/style.css">See My Style</a>
cela fonctionne bien sur la machine locale, mais sur l'hôte, il échoue dans la mesure où il essaie de localiser le style.css sous public_html et pas public_html/website_1
Est-il un moyen d'avoir plusieurs racines de documents sans l'aide de VHosts? Comme l'utilisation .htaccess ou autre chose. S'il vous plaît je veux essayer d'éviter d'avoir à réécrire le code autant que possible depuis son autour de 10 milliers de lignes de code.
__DIR__
ou avez-vous essayé ./
?Je ne veux pas utiliser ./ ni DIR qui nécessitera une restructuration de milliers de lignes de code
J'ai complètement de ne pas voir votre problème. Il n'y a rien dans votre vhost définition c'est même à distance bizarre, ou aurait besoin d'un tas de
.htaccess
règles. Il suffit de télécharger le website_1 dossier directement à public_html à votre hébergeur et il devrait fonctionner correctement.mais je ne vais pas être en mesure d'utiliser <img src="/img_1.png" /> car il serait à la recherche de img_1 en vertu de la racine du dossier public_html
Pas si, comme je le suggère, vous téléchargez le
website_1
contenu directement à public_html
, l'image résoudre amende. Sur un environnement d'hébergement partagé, vous aurez à vivre avec une certaine universel prédéfinis faits, comme celui de la DocumentRoot
est fixé à la public_html
dossier sur DirectAdmin serveurs.
OriginalL'auteur GGio | 2013-05-12
Vous devez vous connecter pour publier un commentaire.
Activer le mod_rewrite et .htaccess par
httpd.conf
puis mettez ce code dans votre.htaccess
sousDOCUMENT_ROOT
répertoire:Une fois que vous vérifiez qu'il fonctionne correctement, remplacer
R=302
àR=301
. Évitez d'utiliser desR=301
(Redirection Permanente) tout en testant vos règles de mod_rewrite.dois-je remplacer les DOCUMENT_ROOT avec quelque chose?
Je reçois boucle de redirection. Où dois-je mettre la .htaccess sous public_html ou sous public_html/website_1?
Comme je l'ai déjà mentionné ci-dessus code sous
DOCUMENT_ROOT/.htaccess
. À propos de rediriger regarder peut je sais ce que URI avez-vous essayé?il ajoute que ce code htaccess à la place de votre première ligne de code: # Pour des raisons de sécurité, l'Option followsymlinks ne peut pas être remplacée. #Options +FollowSymlinks -Multivues Options +SymLinksIfOwnerMatch -Multivues
OriginalL'auteur anubhava
Faire une entrée dans un .htaccess. Supposons que vous avez un site web abc.com. Vous souhaitez exécuter un autre site web dans l'annuaire. Puis créer un .htaccess dans le répertoire parent a souligné abc.com
OriginalL'auteur Aman Varshney
La réécriture de toutes les demandes d'image à la racine pourrait être une solution. Vous pouvez essayer cette dans une .fichier htaccess à la racine du répertoire:
Oui, il recensera toutes les images des fichiers quel que soit leur nom, à condition que l'extension est dans la condition. Non,
/website_1
n'est pas le répertoire racine àjusthost.com
. Il estpublic_html
en fonction de votre question et je suppose/website_1
est un sous-répertoire. Mais, avez-vous essayé le code de la réponse et, dans l'affirmative, quelle est l'erreur ou le problème?L'Image était juste un exemple. Si j'ai un index.php et le style.css sous public_html/website_1/ j'ai besoin de faire référence à un style.css de index.php en utilisant simplement /de style.css et pas /website_1/style.css. Le code ci-dessus me donne 500 erreur interne du serveur
Modifié ma réponse ajout de la
.css
type de fichier et une condition pour empêcher les boucles (erreur 500).pouvez-vous faire si il a été demandé de n'importe quel fichier sous website_1 il les charge de website_1/ ? non seulement les images et les css, il pourrait être du php, js, etc
OriginalL'auteur Felipe Alameda A