我有以下结构
www/
.htaccess
/website1
/website2
/uploads/foo.pdf
/websiteWP
.htaccess
.htacces
根目录(www/.htaccess)
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www.)?foo.com$
RewriteCond %{REQUEST_URI} !^/website1/
RewriteCond %{REQUEST_URI} !^/website2/
RewriteCond %{REQUEST_URI} !^/uploads/
RewriteCond %{REQUEST_URI} !^/websiteWP/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /websiteWP/$1
RewriteCond %{HTTP_HOST} ^(www.)?foo.com$
RewriteRule ^(/)?$ websiteWP/index.php [L]
</IfModule>
.htacces
在wordpress中安装(www/websiteWP/.htaccess)
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
在Wordpress中,单击链接
https://www.foo.com/uploads/some-pdf.pdf 将导致无限量加载页面,试图加载内容(这种反应是由于主题,我想其他人可以有404),或者有时将半个wordpress与半个\'quot;嵌入的“;远程页面。
但是,从网站外部访问pdf(粘贴在搜索框中)将起作用。
Note:
Wordpress URL:
https://www.foo.com/websiteWP网站URL:https://www.foo.com
找不到的故障.htaccess
.
已检查stackoverflow和wordpress stackexchange中的所有可用线程。
最合适的回答,由SO网友:MrWhite 整理而成
现在还不清楚.htaccess
您发布的文件为什么无法访问WordPress安装之外的文件/文件夹(在/websiteWP
子目录)。事实上,您不应该为了访问物理文件而添加特定的异常,因为这些指令不应该应用于物理文件。
但是,您的.htaccess
文件配置错误。。。
如果WordPress安装在/websiteWP
目录,然后/websiteWP/.htaccess
文件(在WordPress安装过程中)不正确,因为它正在将所有请求路由到/index.php
- 这就是index.php
文档根目录中的文件(我假设它是父目录),而不是WordPress front controller,它应该在同一目录中,即。/websiteWP/index.php
).
然而,我认为/index.php
(在文档根目录中)不存在(否则您的WordPress站点将无法工作)。这个.htaccess
根目录中的指令.htaccess
文件然后将请求重写回/websiteWP/index.php
WordPress前控制器!这是额外的工作,没有必要。
您应该更改/websiteWP/.htaccess
要读取的文件:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^index\\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php [L]
</IfModule>
注意:我已删除
RewriteBase
指令,并删除了
RewriteRule
替代,更改/index.php
(根相对)到index.php
(相对)。然后,根.htaccess
根本不需要文件。