De ce nu funcționează redirecționarea mea htaccess? (Administrarea sistemului, Apache 2.2,.Htaccess, Redirecționare)

willdanceforfun a intrebat.
a intrebat.

Am configurat o redirecționare htaccess simplă care arată așa (acesta este întregul fișier .htaccess):

Options +FollowSymLinks

RewriteEngine On

Redirect 301 /something http://something.com/something.php

Dacă apoi încarc site-ul care conține acest .htaccess, adică myredirectsite.com/ceva, mă trezesc cu următorul 404:

The requested URL /something was not found on this server.

Apache/2.2.3 (Red Hat) Server at myredirectsite.com Port 80

Și jurnalele:

[Tue Jul 10 14:25:46 2012] [eroare] [client xx.xx.xxx.xxx.xx] Fișierul nu există: /home/site/scp/something

Ceva nu este un fișier, iar ceva nu există. Am presupus că aș putea folosi Redirect la fel ca Rewrite, dar se pare că redirecționarea trebuie să fie pentru un fișier care chiar există?

Am creat fișierul „ceva” și doar încearcă să încarce fișierul gol. Nu există redirecționare.

Ce îmi scapă pentru a face ca acest lucru să funcționeze?

Comentarii

  • Jurnalele de depanare, pentru început. –  > Por womble.
  • Editați întrebarea dvs. pentru a include informații suplimentare, nu le puneți într-un comentariu. –  > Por womble.
  • Directiva Redirect nu face parte din mod_rewrite, așa că, dacă asta este tot ce faceți, ar trebui să eliminați directiva „RewriteEngine on”. –  > Por Jenny D.
  • Mulțumesc pentru asta @JennyD. Am eliminat-o – se pare totuși că poate că serverul meu nici măcar nu încearcă să încarce htaccess-ul. –  > Por willdanceforfun.
  • Aveți acces la configurația principală a serverului? Are AllowOverride setat – dacă da, la ce? –  > Por Jenny D.
2 răspunsuri
Jenny D

Asigurați-vă că

AllowOverride All

este setat în fișierul httpd.conf!

Dar dacă aveți acces la fișierul principal de configurare, v-aș recomanda să faceți configurația acolo, mai degrabă decât într-un fișier .htaccess – fișierul .htaccess va încetini serverul. Este posibil ca acest lucru să nu fie o problemă dacă aveți o încărcare foarte mică a serverului, dar este la fel de bine să folosiți cele mai bune practici chiar și în cazul proiectelor mai mici.

Comentarii

  • Mi-ați rezolvat problema, mulțumesc. A mea era în apache2.conf. Nu uitați să reîncărcați serviciul apache2. –  > Por Pozinux.
willdanceforfun

Fișierul meu httpd.conf nu era configurat pe acest server pentru AllowOverride în directorul site-ului. Era setat la ‘none’ pe care l-am schimbat în:

AllowOverride All