我有一个WordPress网站我试图调用位于网站上的PHP脚本,URL就是这样的
http://example.com/folder/process.php
问题是,当我尝试这样做时,我总是被重定向到主题“未找到”页面。 这是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
如果我将test.html文件放在该目录中,它将起作用,并显示.html文件的内容。我认为这与它不喜欢的.php扩展有关吗?
如果我调用example.com/wp-config.php,它会发现该文件和deosnt显示404页面。
答案 0 :(得分:1)
此规则说“如果请求以index.php开头,请不要重写并停止”。
RewriteRule ^index\.php$ - [L]
在该行之前或之后,您可以添加类似
的内容RewriteRule ^process\.php$ - [L]
不重写对该特定文件的请求。
请注意,您必须将文件放在Wordpress的index.php旁边才能正常工作。
答案 1 :(得分:0)
将.htaccess更改为:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/+folder/process\.php$ [NC]
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
答案 2 :(得分:0)
尝试在/folder/
目录中完全关闭mod_rewrite,方法是在其中创建一个htaccess文件,只需添加以下一行:
RewriteEngine On
它将使得它不会应用来自父目录的任何规则。如果继续使用PHP的奇怪之处,您可能需要检查vhost / server配置中是否存在任何规则,或者Multiviews
之类的内容是否已关闭(通过Options -Multiviews
)。
答案 3 :(得分:0)
好的,如果我使用WordPress安装附带的默认文件,在cpanel重命名后复制它,删除代码,然后将代码放入其中。
找到该文件并且它可以正常工作。所以我认为唯一剩下的就是权限问题。我上传文件时为文件添加的权限是777.我对文件权限一无所知。
我一直在研究这个问题已经有5个小时了,而且我已经完成了试图找出它的问题是什么......我很高兴。