您需要做的就是确保DirectoryIndex
已设置。例如,在.htaccess
文件:
DirectoryIndex index.php
这指示mod\\u dir尝试服务
index.php
请求目录时,例如。
/sq/first/
.
如果您正在请求尚未包含尾部斜杠的URL/目录,如您的示例所示:/sq/first
, 那么你需要确保DirectorySlash On
(也是mod\\u dir的一部分)也已设置(尽管这是默认设置)。例如:
DirectoryIndex index.php
DirectorySlash On
但是,您确实应该请求
/sq/first/
(带尾随斜杠),否则mod\\u dir会发出301重定向以附加尾随斜杠-这是到服务器的额外往返。
<小时>
RewriteBase /
:
RewriteBase /sq/
放在一边:理想情况下,您不应该包含更多的内容
RewriteBase
您的
.htaccess
文件既然WordPress安装在文档根目录中,那么
RewriteBase
可能应该设置为文档根,即。
RewriteBase /
. 如果您有多个
RewriteBase
指令,则最后一个命令获胜并控制整个文件。所以,在这个例子中,
RewriteBase
设置为
/sq/
, 不
/
. 然而,在您的
.htaccess
文件
RewriteBase
实际上并没有被使用。(你也可以把它放在规则块的中间,这没有多大意义——事实上,我很惊讶这不会导致错误?)
<小时>UPDATE: 综上所述:
DirectoryIndex index.php
DirectorySlash On
ErrorDocument 401 default
# 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]
#----- START DAP -----
RewriteCond %{REQUEST_FILENAME} -f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} (.*)/wp-content/uploads/(.*)
RewriteCond %{REQUEST_FILENAME} !(.*)(\\.php|\\.css|\\.js|\\.jpg|\\.gif|\\.png|\\.txt|\\.ico|\\.jpeg)$
RewriteRule (.*) /dap/client/website/dapclient.php?dapref=%{REQUEST_URI}&plug=wp&%{QUERY_STRING} [L]
#----- END DAP -----
</IfModule>
# END WordPress
您应该避免在
# BEGIN WordPress
和
# END WordPress
作为WP本身的注释标记可能会在将来的更新中覆盖此内容。
我删除了您必须“排除”某些目录的部分。这不会造成任何伤害,但是,考虑到现有的WordPress mod\\u rewrite指令,这也是不必要的。WordPress(上面的mod\\u rewrite指令)已经排除了通过WP路由的物理目录。