2009-08-12 54 views
0

我正在開發的應用程序使用特定的文件目錄結構。通過使用mod_rewrite和.htaccess文件,我設法爲我們的用戶提供友好的網址。它在我的本地服務器上工作正常,但是一旦在生產服務器上,它就會失敗:顯然,服務器在.htaccess有機會啓動之前會拋出404錯誤。mod_rewrite失敗:.htaccess或服務器配置問題?

這是我工作的.htaccess上(參考:(1)在這裏如下):

IndexIgnore * 
#Options +FollowSymLinks 
RewriteEngine on 

RewriteOptions inherit 

RewriteCond %{REQUEST_FILENAME} !-f [NC] 
RewriteRule ^(.*)$ /~extranet/extranet/$1 [NC,L,QSA] 

在服務器上,它會返回404:

服務器無法找到所請求的頁面 :

<IP-ADDRESS>/~extranet/extranet/dev/foo/ 

(端口80)

事實上,看來任何重定向失敗,儘管phpinfo()函數列出了加載模塊之間的mod_rewrite。

服務器是全新的。 (如果有幫助,404頁面列出了Apache/2.0.63(Unix)mod_ssl/2.0.63 OpenSSL/0.9.8e-fips-rhel5 mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635 PHP/5.2.8服務器)

我應該在哪裏尋找錯誤/配置錯誤?

UPDATE:詳細信息

這裏是文件/文件夾結構和使用的每個的.htaccess:

<IP-ADDRESS>/~extranet/.htaccess (1) 
<IP-ADDRESS>/~extranet/extranet/ 
           L .htaccess (2) 
           L/dev/ 
            L .htaccess (3) 
            L index.php 
           L/stable/ 
            L .htaccess (3) 
            L index.php 

(1)重定向的所有請求文件夾 「外部網」 (2)重定向的所有請求不包含 「的/ dev /」 文件夾 「穩定」 (3)重寫/外網/富/酒吧/的index.php應用= foo的&做=酒吧

回答

1

有一個在這裏波浪:<IP-ADDRESS>/~extranet/extranet/dev/foo/

指定的正則表達式不符合代字號。

也許你需要爲遠程web服務器正確指定你的RewriteBase?

+0

好的,我會嘗試使用帶有代字號的部分。 你能否詳細說明我應該如何修改RewriteBase?我不太明白這個指令。謝謝!! – pixeline 2009-08-12 00:57:40

+0

那麼主要的問題是,a)你的.htaccess正在做重定向,相對於webroot,以及b)你的目標index.php文件在哪裏? – Amber 2009-08-12 04:22:02

+0

嗨Dav,我用所需的信息更新了問題。感謝您堅持! – pixeline 2009-08-13 12:20:09