0
我有這個網站。讓我們把它叫做HTP://www.mysite.comMod_rewrite適用於本地,不適用於遠程版本?
我有一個重寫規則改變htp://www.mysite.com/?q=words%20etc/0/10
到http://www.mysite.com/words%20etc/0/10
(或或http://www.mysite.com/0/10
)
.htaccess:ErrorDocument 404 htp://www.mysite.com/404.html
options +FollowSymlinks
rewriteEngine on
rewriteCond %{REQUEST_URI} !-f
rewriteCond %{REQUEST_URI} !-d
rewriteCond %{REQUEST_URI} !index\.php
rewriteRule ^/?([^/]+?)?/?([0-9]+?)/([0-9]+?)$ index.php/%{THE_REQUEST} [NC]
現在,這個工作對我本地的Apache 2.2.11服務器,沒有錯誤。但是我的主機的Apache 1.3.41服務器上,我得到以下錯誤:
[Sat Mar 5 21:42:14 2011] [alert] [client [ip]] /home/_/public_html/mysite.com/.htaccess: RewriteRule: cannot compile regular expression '^/?([^/]+?)?/?([0-9]+?)/([0-9]+?)$'\n
我想這件事情有些古怪關於Apache版本在此主機使用mod_rewrite其他網站順利。
我試過刪除+followSymlinks
行,甚至是重寫引擎行。我沒有嘗試刪除條件,因爲我認爲我不應該這樣做,我可能是錯的。
它可能與v1.3 apache服務器有關 - 它與v2有明顯的不同;它在過去使用mod_rewrite多次觸發了我。但是真的,你的遠程主機應該已經升級了 - Apache 1.3在一年前被宣佈壽終正寢了。這並不是說v2是新的未經測試的。 – Spudley
我會從舊的1.3時代的mod_rewrite文檔開始:http://httpd.apache.org/docs/1.3/mod/mod_rewrite.html#RewriteRule – canuckistani