代码之家  ›  专栏  ›  技术社区  ›  pixeline

mod重写失败:.htaccess或服务器配置问题?

  •  0
  • pixeline  · 技术社区  · 15 年前

    我正在开发的应用程序使用特定的文件目录结构。通过使用mod ou 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重写,但似乎任何重定向都失败了。

    服务器是全新的。(如果有帮助,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服务器)

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

    更新:更多信息

    以下是文件/文件夹结构和使用的每个.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/to index.php?app=foo&do=bar

    1 回复  |  直到 15 年前
        1
  •  1
  •   Amber    15 年前

    这里有一块瓷砖: <IP-ADDRESS>/~extranet/extranet/dev/foo/

    指定的正则表达式与颚化符不匹配。

    也许您需要为远程Web服务器正确地指定RewriteBase?