Vra

Ek hoop ek kan dit duidelik genoeg verduidelik, maar indien nie laat my weet en ek sal probeer om te verduidelik.

Ek is tans besig om 'n webwerf met behulp van Cold Fusion en het 'n mod_rewrite reël in plek om te maak dat dit lyk soos die werf gebruik PHP. Enige versoeke vir index.php ontslae verwerk deur index.cfm (die reël kaarte * .php om * Cfm).

Dit werk baie goed - so ver, so goed. Die probleem is dat ek wil 'n 404-status kode terugkeer as index.cfm (of enige Cold Fusion bladsy) direk aangevra word.

As ek probeer om toegang tot * Cfm lêers te sluit deur gebruik te maak mod_rewrite ook terug 'n 404 vir versoeke om * .php.

Ek reken ek kan hê om my Apache config verander eerder as om te gebruik htaccess

Was dit nuttig?

Oplossing

Jy kan die S vlag gebruik om die 404 reël slaan, soos volg:

RewriteEngine on

# Do not separate these two rules so long as the first has S=1
RewriteRule (.*)\.php$ $1.cfm [S=1]
RewriteRule \.cfm$ - [R=404]

As jy ook gebruik maak van die opsie Alias dan moet jy ook die PT vlag voeg. Sien die mod_rewrite dokumentasie vir meer inligting.

Ander wenke

Post die reëls wat jy reeds het as 'n beginpunt, sodat mense nie om dit te herskep om jou te help.

Ek stel voor die toets [L] op die reël dat .php kaarte om lêers Cfm as die eerste ding om te probeer.

Jy moet twee afsonderlike groepe van herskryf reëls, een vir .php, die ander vir chm gebruik en maak hulle wedersyds eksklusiewe met RewriteCond% {REQUEST_FILENAME}. En maak gebruik van die vlag [L] soos voorgestel deur jj33.

Jy kan jou reëls in htaccess hou.

Gelisensieer onder: CC-BY-SA met toeskrywing
Nie verbonde aan StackOverflow
scroll top