我在Wordpress上遇到了一个疯狂的错误。当我创建新文章或编辑旧文章时,我无法插入在第一个尾部斜杠之后的热门文件链接。
我更好地解释它。如果在我的帖子中:
<a href="http://www.hotfile.com">TEST</a>
我可以正确地创建文章。如果我这样做:
<a href="http://www.hotfile.com/">TEST</a>
或更长的链接,例如:
<a href="http://www.hotfile.com/dl/[...]">TEST</a>
从管理更新帖子时,我收到403错误。这很疯狂,只有Hotfile链接才会发生。其他一切都像魅力一样。
错误是什么?如果它有帮助,我发布了我的.htaccess,我从未改变过我的WP安装:
# 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
已经完成了MySQL DB的修复和优化。非常感谢大家。
答案 0 :(得分:7)
我是一名普通的WP开发人员,我总是看到这样的小错误。不幸的是,这通常意味着是时候完成繁琐的测试工作了。问题可能在于Apache / htaccess,或者在WP插件或主题中。
为了尝试消除WP作为此特定问题的原因,我尝试创建一个包含以下内容的php文件:
<?
if (isset($_POST["field"]))
echo $_POST["field"];
?>
<form method='post'>
<input type='hidden' name='field' value='<a href="http://hotfile.com/dl/">TEST</a>'>
<input type='submit' value='Test'>
</form>
如果点击&#34;测试&#34;不会导致相同的403错误,那么它具体发生在WP上。如果它确实导致了403,那么您将会想要与托管服务提供商讨论这个问题。
如果是WP问题,我要做的第一件事是开始逐个停用插件,从插件开始,我认为最有可能是罪魁祸首。如果我没有理由怀疑另一个,我只是一次禁用它们。一旦插件被禁用,我会尝试重新创建原始问题。如果问题仍然存在,很明显插件没有错误,我重新启动它并测试下一个。 10次中有9次,我的问题就是这样找到的。尝试此操作时要小心,因为一些插件会在它们被取消激活后清除它们的设置。
如果这还没有解决问题,我会尝试不同的主题,看看是否能解决问题。显然,如果在尝试新主题时问题消失,您就会知道问题出在哪里。同样,某些主题可能具有与之关联的设置,并且更改主题可能会丢失这些设置。
最后,请检查您的wp-content/mu-plugins
文件夹中是否有始终处于活动状态的插件,并且不要一直显示在插件列表中。
答案 1 :(得分:2)
我也有类似的问题,显然wordpress在我试着在帖子中添加的一些代码有一些问题。我设法通过在<pre>
标记中包含代码来绕过这个问题。
答案 2 :(得分:2)
我意识到这篇文章与时间本身一样古老,但我遇到了类似的问题,让我永远想知道发生了什么,直到我意识到我所要做的就是添加:
Options +FollowSymLinks
在.htaccess文件的顶部和presto!它奏效了。
Options +FollowSymLinks
# 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
归功于这位好人: http://www.coolestguyplanettech.com/403-forbidden-error-wordpress-htaccess/
答案 3 :(得分:0)
我知道我的回答是迟到的,但只是想增加2美分。
我建议您检查.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
您可以尝试添加Options +FollowSymLinks
作为adamj在他的回答中说明,以便.htaccess看起来与下面类似。
Options +FollowSymLinks
# 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
检查以确保没有插件导致此问题。禁用所有插件以查看问题是否仍然存在。如果没有,那将是一个消除过程,找出原因。
最后,我删除了.htaccess文件,这也对我有用,但没有.htaccess文件就意味着没有URL重写,除非您的Web服务器另外配置。
我希望这有助于某人。