Mod rewrite 为什么这个重写规则的更改会修复我的404

Mod rewrite 为什么这个重写规则的更改会修复我的404,mod-rewrite,Mod Rewrite,在文档根目录下,WordPress拥有此.htaccess # BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfM

在文档根目录下,WordPress拥有此.htaccess

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress
AuthUserFile /home/foo/.htpasswd
AuthName "FOO Admin"
AuthType Basic

<Limit GET>
        require valid-user
</Limit>

RewriteEngine off
#开始WordPress
重新启动发动机
重写基/
重写规则^index\.php$-[L]
重写cond%{REQUEST_FILENAME}-F
重写cond%{REQUEST_FILENAME}-D
重写规则/index.php[L]
#结束WordPress
一个非WordPress目录显示为404,带有WordPress“未找到”页面。该目录具有基本的auth.htaccess

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress
AuthUserFile /home/foo/.htpasswd
AuthName "FOO Admin"
AuthType Basic

<Limit GET>
        require valid-user
</Limit>

RewriteEngine off
AuthUserFile/home/foo/.htpasswd
AuthName“FOO-Admin”
AuthType Basic
需要有效用户
发动机熄火
更改
重写规则/index.php[L]
重写规则//index.php[L]
修复了该问题

为什么要修它?它是否告诉mod_rewrite不要查看当前目录(.)而是子目录(./)

我真的想更清楚地了解这个过程


PS我在这篇文章中关闭了
重写引擎
,因为我在auth htaccess中尝试过它-我发现它是在auth之前还是之后都不重要。它似乎没有任何效果。

RewriteEngine
是一个mod_rewrite指令,对
mod_auth
指令没有影响。关于另一个问题,可能是
RewriteBase
不是根,需要定义前缀。在这种情况下,我猜是/foo。如果是这样,
RewriteBase/foo
RewriteRule/foo/index.php[L]
应替换实际指令。不过只是猜测而已。谢谢你的回复!为什么没有
mod_auth
指令的目录可以用原始
mod_rewrite
指令很好地加载,但是有
mod_auth
指令的目录会生成404?你说:
目录
,复数。mod_auth指令有时也是这样,但是WP规则集只在安装目录中放置一次。WP htaccess with RewriteRules(如上)位于文档根目录。在doc root下面的目录中,如果有一个带有auth指令的htaccess,它会使用原始规则给出404。其他没有htaccess with auth的目录没有提供404。