0

我正在开发的应用程序使用特定的文件目录结构。通过使用 mod_rewrite 和 .htaccess 文件,我设法为我们的用户提供友好的 url。它在我的本地服务器上运行良好,但是一旦在生产服务器上,它就会失败:显然,服务器在 .htaccess 有机会启动之前抛出 404 错误。

这是我正在处理的 .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 Server )

我应该在哪里查找错误/错误配置?

更新:更多信息

这是文件/文件夹结构和使用的每个 .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) 将所有请求重定向到文件夹 "extranet" (2) 将所有不包含 "/dev/" 的请求重定向到文件夹 "stable" (3) 将 /extranet/foo/bar/ 重写为 index.php?app=foo&do=bar

4

1 回答 1

1

这里有一个波浪号:<IP-ADDRESS>/~extranet/extranet/dev/foo/

您指定的正则表达式与波浪号不匹配。

也许您需要为您的远程网络服务器正确指定您的 RewriteBase?

于 2009-08-12T00:02:51.130 回答