AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 55323
Accepted
Michael Mior
Michael Mior
Asked: 2009-08-18 18:24:28 +0800 CST2009-08-18 18:24:28 +0800 CST 2009-08-18 18:24:28 +0800 CST

为子目录禁用 mod_rewrite

  • 772

我正在使用 mod_rewrite 为漂亮的 URL 运行 CMS,但是我在 CMS 下的子目录中运行了另一个站点,需要禁用 URL 重写,所以我在.htaccess文件中添加了几行:

Options -MultiViews
Options +ExecCGI

AddHandler php5-cgi .php
Action php-cgi /cgi-bin/php-wrapper.cgi
Action php5-cgi /cgi-bin/php-wrapper.cgi

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

# Added following two lines
RewriteCond %{REQUEST_URI} ^/dir/
RewriteRule ^(.+) - [PT,L]

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d     
RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>

这有效,但是其中一个目录受到/dir/保护mod_auth,并且仍在被重写。如果我在这个目录的文件中取出Require valid-user指令.htaccess,一切都会很好。

这是.htaccess受保护目录中的文件:

RewriteEngine off

AuthType Basic
AuthName "Administration"
AuthUserFile "/home/user/admin/.htpasswd"
require valid-user

任何帮助,将不胜感激。这一直困扰着我好几个星期!我做了一些谷歌搜索,其他人也遇到了这个问题,但我还没有找到解决方案。

apache-2.2 mod-rewrite
  • 3 3 个回答
  • 17016 Views

3 个回答

  • Voted
  1. Best Answer
    Gaz
    2009-09-11T04:04:05+08:002009-09-11T04:04:05+08:00

    我有同样的问题,迈克尔,终于找到了解决方案

    对于基本身份验证,服务器会写入“401 Unauthorized”标头,然后根据预定义的路径查找错误文档。大多数情况下,错误文档不会存在于您要保护的目录中,因此该请求由引发 404 错误的重写引擎处理。

    这个问题的解决方案非常简单。您需要在 .htaccess 文件中添加一行代码,指示 Apache 忽略错误文档。完成后,代码应如下所示:

    ErrorDocument 401 "Unauthorized Access"
    
    RewriteEngine off
    
    AuthType Basic
    AuthName "Administration"
    AuthUserFile "/home/user/admin/.htpasswd"
    require valid-user
    

    希望对你有用!

    • 9
  2. CK.
    2009-08-19T00:10:13+08:002009-08-19T00:10:13+08:00

    替代曼尼:

    RewriteCond %{REQUEST_URI} !^/dir/
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d     
    RewriteRule ^(.*)$ index.php/$1 [L]
    

    并放弃您添加的两条规则(假设我已正确理解问题),并从受保护的.htaccess 中删除 RewriteEngine。

    • 2
  3. innaM
    2009-08-18T22:15:26+08:002009-08-18T22:15:26+08:00

    接下来,我将尝试将 Rewrite 语句包含在 <DirectoryMatch> 语句中。您可以简单地使用它与逆逻辑来匹配每个目录,但不应该重写的目录:

    <DirectoryMatch "^/(?!dir)">
        RewriteEngine on
        ...
    </DirectoryMatch>
    
    • 1

相关问题

  • 阿帕奇的替代品

  • 如何强制我的网址始终以 www 开头?

  • 在 Linux Xen VPS 上优化 Apache 和 MySQL

  • mod_rewrite 不转发 GET 参数

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve