Back to Question Center
0

Semalt om mod_rewrite regel för omdirigering av felaktiga sidor

1 answers:

Jag skapar en mod_rewrite regel som omdirigerar felaktiga sidor till en anpassad sida för sida som inte hittades. Detta är med WordPress. Jag har använt en onlinehandledning från Apache-webbplatsen och så här ser mina regler ut så här:

     RewriteCond% {REQUEST_FILENAME}! -f
RewriteRule ^ ( - eleaf istick 50 w. +) http: // exempel. com /? page_id = 254 [R]    

Detta fungerar. Det verkar vara en kombination av det första och andra förslaget som fungerade, eftersom flaggan -U gjorde ingenting. All min formatering är borta, och detta händer på varje sida. Kan någon tänka på varför detta kan hända?

February 6, 2018
. htaccess), som så:

  ErrorDocument 404 http: // exempel. com /? page_id = 254 

Se även: ErrorDocument

Mindre rörig och betydligt mindre CPU-användning per förfrågan än mod_rewrite - allt som 404s går bara rakt där, inga frågor ställda. Jag skulle definitivt överväga att göra någon errordoc en statisk sida om möjligt, särskilt om du sträcker den för att hantera andra fel (inte kul när din 500 errordoc kastar ett 500-fel).

. I FF kan du använda Firebug eller Tamper Data för debug. Se även källkoden (Ctrl + U) och klicka på stilarklänk i den. Se även Error Console (Ctrl + Shift + j).

Om du pratar om WordPress, kan det redan använda omdirigeringar så att REQUEST_URI inte ställs in på vad du förväntar dig - och därmed misslyckas. Om till exempel, om dess åtkomst ? Page_id = 100 , kan begäran URI faktiskt vara en tom sträng. Även om det kan använda index. php bakom kulisserna, vid tidpunkten för din villkorliga, den är sannolikt inte inställd.

Du kan aktivera mod_rewrite debugging för att se de olika stegen som matchningsmetoden gör, och jag föreslår starkt att du gör det om du vill ta reda på vad som händer. :)

  RewriteCond% {REQUEST_FILENAME}! -f 

Min fråga är av nyfikenhet varför följande händer: När jag ändrar REQUEST_FILENAME till REQUEST_URI (som det andra exemplet antyder) laddas sidan, men ingen stil arkbelastning. All min formatering är borta, och detta händer på varje sida.

REQUEST_FILENAME och REQUEST_URI innehåller olika värden i htaccess-filer per katalog. REQUEST_FILENAME är den fullständiga lokala filsystembanan till filen, medan REQUEST_URI är sökkomponenten för den begärda URI-filen (som inte nödvändigtvis är en faktisk fil på filsystemet).

Det verkar emellertid att REQUEST_URI för din huvudsida ses som en vanlig fil (eller andra direktiv kommer först till begäran). Detta beror på din webbadressstruktur och eventuellt andra direktiv i din. htaccess-fil.