Mul on halb .htaccess päev!

Soovin, et kasutaja saaks URL-i sisestada

mysite.com/about

selle asemel

mysite.com/about.html

.Htaccess-failil on mul:

RewriteEngine On RewriteCond %{SCRIPT_FILENAME} !-f RewriteCond %{SCRIPT_FILENAME} !-d RewriteRule ^/(.*)$ /$1.html [NC,L] 

Kuid see lihtsalt ei toimi?

Lisan siiski, et kui proovin seda saidil edasi nt.

mysite.com/pages/contact 

Toimib suurepäraselt olenemata sellest, kas mul on ülaltoodud kood .htaccessis või mitte

Mida ma valesti teen?

  • Pole otsene lahendus, kuid faili teisaldamine saidile about / index.html annab sama tulemuse.
  • 1 RewriteRule'is sobitamisel ei tohi olla esikriipsu, kui see on paigutatud .htaccess. Proovi seda: RewriteRule ^(.*)$ /$1.html [NC,L]
  • Samuti võite mod_rewrite'i asemel vaadata Options direktiiv, MultiViews eelkõige: httpd.apache.org/docs/current/mod/core.html#options

lihtsalt vältige kaldkriipse enne mustrite ja sihtkoha sobitamist. Niisiis,

RewriteEngine On RewriteBase / RewriteCond %{SCRIPT_FILENAME} !-f RewriteCond %{SCRIPT_FILENAME} !-d RewriteRule ^(.*)$ $1.html [NC,L] 

peaks töötama ideaalselt.

none: Charles Robertson | none