2011-03-06 195 views
0

我有這個網站。讓我們把它叫做HTP://www.mysite.comMod_rewrite適用於本地,不適用於遠程版本?

我有一個重寫規則改變htp://www.mysite.com/?q=words%20etc/0/10http://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行,甚至是重寫引擎行。我沒有嘗試刪除條件,因爲我認爲我不應該這樣做,我可能是錯的。

+0

它可能與v1.3 apache服務器有關 - 它與v2有明顯的不同;它在過去使用mod_rewrite多次觸發了我。但是真的,你的遠程主機應該已經升級了 - Apache 1.3在一年前被宣佈壽終正寢了。這並不是說v2是新的未經測試的。 – Spudley

+0

我會從舊的1.3時代的mod_rewrite文檔開始:http://httpd.apache.org/docs/1.3/mod/mod_rewrite.html#RewriteRule – canuckistani

回答

0

答案在這裏:http://www.webmasterworld.com/apache/4277342.htm

我使用?主要是錯誤的將在解決方案發布時發佈。

ErrorDocument 404 /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?q=$1&s=$2&p=$3 [NC] 
rewriteRule ^/?([0-9]+)/([0-9]+)$ index.php?q=&s=$1&p=$2 [NC] 

fixeddddd。

相關問題