子文件夹中的站点-除主页外,所有页面均可工作

时间:2020-12-01 作者:Marcelnl1

我们的WordPress站点位于子文件夹中/subwp/, 以及除主页外的所有页面。这是根文件夹:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /subwp/
RewriteRule ^index\\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /subwp/index.php [L]
</IfModule>
访问主页时(例如。http://example.com/) 我获得托管提供商的默认站点(“此域由xyz托管”)。所有其他被重击的页面都工作得很好。

只是为了确保托管提供程序不会以某种方式将请求自动重定向到/, 我创建了一个名为index.php 只是“胡说八道”,看看它是否会起作用,然后如果我访问http://example.com, 我看到文本“blah”(现在所有其他页面都显示blah:)

我有点卡住了。有什么想法吗?

1 个回复
最合适的回答,由SO网友:MrWhite 整理而成

因为当您请求文档根目录时.htaccess 不匹配,请求不会重写到子目录。因此请求失败,不管文档根的默认响应是什么(例如。/index.php 如果存在)。

只需添加另一条指令即可重写主页。

(第一个RewriteRule 指令也不正确。)

例如:

RewriteEngine On
RewriteBase /subwp/

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

# Special case - rewrite requests for the homepage (which is also a directory) 
RewriteRule ^$ index.php [L]
因为您正在使用RewriteBase 您可以删除/subwp/ 上的前缀RewriteRule 替换字符串(这就是使用RewriteBase).

相关推荐

HTAccess通配符重定向缺少某些URL

我正在使用通配符重定向将旧域重定向到新域。它工作得很好,但丢失了几个URL(它们不会被重定向到目标并返回状态200)你能帮我弄明白这是怎么回事吗?可能是我的通配符重定向错误,或者是服务器问题。我的旧域名是old.example 我的新域名是new.example.未重定向的URL示例:old.example/example-url这是我的.htaccess 文件:# BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine O