如何为mod_rewrite规则添加例外(wordpress站点)

时间:2012-10-23 05:54:17

标签: php wordpress .htaccess

我有一个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页面。

4 个答案:

答案 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个小时了,而且我已经完成了试图找出它的问题是什么......我很高兴。