【问题标题】:Wordpress RewriteRule Conflicts with .passwdWordpress RewriteRule 与 .passwd 冲突
【发布时间】:2012-12-14 02:41:59
【问题描述】:

在我的根 .htaccess 文件中,我有以下 Wordpress 代码:

RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /wordpress/index.php [L]

与标准代码略有不同,因为 Wordpress 文件位于“wordpress”目录中,但重写仍然相对于域根目录出现。例如,可以将博客文章称为 site.com/this-is-a-blog-post.php 并且重写工作。

当我想使用 htpasswd 保护站点上的目录时,这非常有用 except。如果我将以下代码添加到任何目录中的 .htaccess 文件中,我会在尝试浏览到该目录时得到 404:

AuthName "Private"
AuthUserFile "/home/passwd"
AuthType Basic
require valid-user

当 Wordpress 重写代码的最后一行被注释掉时,此代码可以正常工作,但在 Wordpress 代码完整的情况下,我的密码保护目录给出了 404。

所以我在两个 .htaccess 文件之间存在某种冲突。我已经尝试编写一堆 RewriteCond 来尝试排除应用密码的子目录但无法确定。

【问题讨论】:

    标签: wordpress .htaccess mod-rewrite .htpasswd


    【解决方案1】:

    好的,墨菲定律,发布问题后才算出来!

    Wordpress 重写所需的额外条件是:

    RewriteCond %{REQUEST_URI} (/|\.htm|\.php|\.html|#.*|\?.*|/[^.]*)$  [NC]
    

    所以完整的 Wordpress 重写代码变成:

    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} (/|\.htm|\.php|\.html|#.*|\?.*|/[^.]*)$  [NC]
    RewriteRule . /wordpress/index.php [L]
    

    现在我要完成我卑微的馅饼了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-11-18
      • 1970-01-01
      • 2020-12-03
      • 1970-01-01
      • 1970-01-01
      • 2011-06-18
      • 2012-07-10
      • 1970-01-01
      相关资源
      最近更新 更多