在我的開發服務器上運行Windows上的xampp我的.htacess重寫規則工作正常。一旦我們去了運行Linux core 3.8.0-21-generiC#32-Ubuntu SMP Server version: Apache/2.2.22 (Ubuntu)
的活動服務器,我們的規則不包含參數不再起作用,但是具有參數的規則正在運行。htaccess規則不工作在Linux服務器上
Options -Indexes
<filesMatch "\.(html|htm|txt|js|htaccess)$">
FileETag None
<ifModule mod_headers.c>
Header unset ETag
Header set Cache-Control "max-age=0, no-cache, no-store, must-revalidate"
Header set Pragma "no-cache"
Header set Expires "Wed, 11 Jan 1984 05:00:00 GMT"
</ifModule>
</filesMatch>
ErrorDocument 404 /404.php
RewriteEngine On
#Main site rules
RewriteRule ^login/?$ login.php [NC,L]
RewriteRule ^contact/?$ contact.php [NC,L]
上述規則去contact.php和login.php不起作用。但是,這個更復雜的參數規則正在工作: RewriteRule ^game/([a-zA-Z0-9]+)/?$ handles/handle-game-select.php?name=$1 [NC,L]
兩個服務器環境之間是否存在導致這種情況發生的區別?
此外,它看來,如果我們做一些奇怪的事情,例如:RewriteRule ^contact.x contact.php [NC,L]
我們能夠達到contact.php ......在這一個
很困惑。
謝謝你的幫助。
謝謝。其他誰偶然發現這篇文章也可以:http://blog.razuna.com/2008/03/27/apache-htaccess-and-directive-multiviews/ – Vigs
不客氣,很高興它解決了。 – anubhava