mod_rewrite - İkinci kural iş alamadım

2 Cevap php

I want to have a url like this: domain.com/css/site.css?test=234

Kural:

RewriteEngine On
RewriteRule ^([a-z]+)/$ $1.php
RewriteRule ^css/([a-zA-Z0-9]+).css?count=(.*)$ css.php?f=$1&test=$2

Ama ben bir 404 her zaman olsun: Bulunamadı (site.css)

Ben sadece $ _GET değişken almadan çalışır böyle bir kural varsa:

RewriteEngine On
RewriteRule ^([a-z]+)/$ $1.php
RewriteRule ^css/([a-zA-Z0-9]+).css$ css.php?f=$1

2 Cevap

Sorgu dizesi RewriteRule ile uyumlu olması için adres mevcut değildir. Sen böyle bir şey gerekiyor:

RewriteEngine On
RewriteRule ^([a-z]+)/$ $1.php

RewriteCond %{QUERY_STRING} count=(.*)$
RewriteRule ^css/([a-zA-Z0-9]+).css$ css.php?f=$1&test=%1

Sen RewriteCond hakkında daha fazla okumak ve RewriteRule Burada http://httpd.apache.org/docs/1.3/mod/mod_rewrite.html#RewriteCond olabilir

You can see order in which RewriteConds and RewriteRules are executed here http://httpd.apache.org/docs/1.3/mod/mod_rewrite.html#InternalRuleset

Aşağıdaki gibi dosyalar düzenlendiği, çünkü olabilir:

www.mysite.com/script.php
www.mysite.com/css.php

Ve çünkü yeniden yazma sen bu sayfayı gösteriyor:

www.mysite.com/script/

Ve script.php içerir:

<link href="css/site.css?count=1">

Hangi almak için tarayıcı bildirir:

www.mysite.com/script/css/site.css

Ve bu dosya yok + bu çıkan url Yapılandırmanızda tanımlı değil. Geçici bir çözüm olarak, css dosya yoluna lider / eklemeyi deneyin.