Hoe kan ek maak htaccess werk op die huidige gids en nie subgidse?
-
05-07-2019 - |
Vra
Ek gebruik mod herskryf om toegang tot my PHP lêers in die hoofdmap van my webwerf indirek. Op die oomblik het ek iets soos hierdie,
RewriteRule ^(blog|about|page3|etc)$ /$1.php [L]
Maar wat ek wil gebruik is
RewriteRule ^(.*)$ /$1.php [L]
Om te verseker dat ek wil nie hê om my htaccess lêer op te dateer wanneer ek wil voeg 'n nuwe bladsy op my webwerf. Die probleem met hierdie is egter dat dit 'n invloed my subdirectories te. Wat maak CSS, JavaScript, beelde ontoeganklike omdat dit aansture na "/dir/example.png.php".
Wat is die beste oplossing hier?
Oplossing
Probeer hierdie reël:
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI}.php -f
RewriteRule .* $0.php [L]
Ander wenke
Edit die .htaccess
om hierdie:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /$1.php [L]
Na die aanvang van die herskryf enjin, dit sal eers kyk om te sien of die versoek lêer is 'n werklike lêer op die stelsel, of as dit is eintlik 'n gids. As dit is nie een van daardie, sal dit die reël, wat in hierdie geval is om te probeer en die lêer te vind deur die aanbring van .php
en bediening wat tot uit te voer.
subdirectory, beelde, CSS en dies meer sal goed wees, want hulle sal stap uit die herskryf sodra hulle gevind.
Ek sal dit doen met filters om sub-gidse ignoreer. Op dié manier hoef jy net om dit te verander as jy 'n sub gids te voeg. Jy moet 'n lyn te voeg soos Sosh 's as jy beelde of ander lêers in die gids het
Die volgende "beelde" "JS" sub dopgehou sou ignoreer en en lei alles
RewriteRule ^images* - [L]
RewriteRule ^js* - [L]
RewriteRule ^(.*)$ /$1.php [L]
Iets soos hierdie (let op die!):
RewriteRule !\.(js|ico|gif|jpg|png|css|zip|gz|html|xml)$ index.php