WordPress MULTITE.HTACCESS在旧*.php URL上导致500错误

时间:2018-12-27 作者:benedict_w

我已经安装了一个新的多站点WordPress安装。一切正常,除了谷歌仍在抓取旧的URL(扩展名为.php)。

这些URL现在显示一个500错误,这似乎是由于htaccess问题造成的,即这些URL没有命中WordPress。(我目前使用的是标准WordPress多站点htaccess代码。)

RewriteEngine On
RewriteBase /
RewriteRule ^index\\.php$ - [L]

# add a trailing slash to /wp-admin
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\\.php)$ $2 [L]
RewriteRule . index.php [L]
我需要添加一个重写到网站的。htaccess将删除。在服务器上找不到的文件的php扩展名(即排除WordPress核心文件,如wp-login.php等)

我使用此代码删除。php扩展

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ / [L,QSA]
</IfModule>
这解决了500错误,并允许我使用wp redirect插件为旧站点设置重定向,正如我最初打算的那样,但它会导致在一些子文件夹multisites上加载样式和图像时出现一些问题,因此我认为它需要改进!

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

在您的.htaccess 文件:

Options -MultiViews

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule (.+)\\.php$ /$1 [R=302,L]
以上重定向以.php 不会映射到物理文件并删除.php 重定向中的扩展。

虽然这些请求(带有.php 扩展)首先不应该触发500错误吗?如果上面的重定向解决了这个问题,那么它似乎暗示是WordPress本身触发了500错误?

我使用此代码删除了。php扩展

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ / [L,QSA]
</IfModule>
这解决了500错误。。。

此代码更可能导致500错误,而不是修复它?这不会“删除.php 扩展”-它只是将所有URL路由到文档根目录,从而触发mod\\u dir将请求路由到index.php.

相关推荐

Moving Wordpress Multisite

我正在尝试将我的wordpress多站点移动到我的主机。我成功地复制了所有文件,将数据库移动到主机。我还在wp-config 文件对条目执行了相同的操作siteurl 和home 在里面wp_options 表,并编辑wp_site 表来保存正确的域,在wp_blogs.但它仍然表明Error establishing connection to database 消息我测试了与mysqli\\u connect的连接,它能够完美连接。。我快疯了。。。你们中的一些人也在为此挣扎吗?PS:也尝试访问back