Používam tento kód na vytvorenie priateľských adries URL:
rewriteengine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]
Mal by fungovať, aby som mohol ísť http://www.mywebsite.com/test ale keď idem do svojej adresy, jednoducho to hovorí 404 Not Found
ale v súbore denníka sa nevyskytuje žiadna chyba.
Používam Apache2 na Debian x86_64 a moja otázka je potreba zmeniť akékoľvek nastavenia priateľských URL na prácu?
odpovede:
1 pre odpoveď č. 1Existuje veľa možností. Tu je niekoľko (niektoré z nich SmartWebDeveloper.com):
Uistite sa, že
.htaccess
súbor je správne pomenovaný. Uistite sa, že ste na to nezabudli.
na začiatku a že názov súboru je malý.Uisti sa
AllowOverride
je správne nastavená. Ak sa pozriete vo svojich konfiguračných súboroch (httpd.conf
, a možno aj ďalšie konfiguračné súbory v priečinku/etc/apache2/
), môže sa zobraziť riadok takto:AllowOverride None
, Tento riadok zabraňuje vášmu.súbor htaccess z meniacich sa vecí. (Všimnite si, že tento riadok môže byť prítomný v konfigurácii servera na viacerých miestach - vrátane hlavnej konfigurácie, konfigurácie koreňového adresára na webe (pravdepodobne v/etc/apache2/sites-available/default
) a všetky konfiguračné súbory VHost v priečinkusites-enabled
priečinok, takže musíte nájsť ten, ktorý skutočne zmení veci pre túto stránku.) Zmeňte toAllowOverride FileInfo
(ak všetko, čo potrebujete, je prepísané) aleboAllowOverride All
(ak máte v úmysle použiť svoje.htaccess
pre iné veci.) Úplný popisAllowOverride
je na adrese http://httpd.apache.org/docs/current/mod/core.html#allowoverrideUistite sa, že je zapnutý modul prepísania. Ak je vaša konfigurácia prepisovania uzavretá
<IfModule mod_rewrite.c>
a</IfModule>
alebo ak je vaša Apache nakonfigurovaná na to, aby oznamovala.htaccess
chyby, nikde neuvidíte, že je modul vypnutý. Ak to chcete povoliť, použitea2enmod rewrite
a reštartujte server Apache.