将网站移动到WordPress后删除.php扩展


Remove .php extension after moving site to WordPress

我正在将一个旧网站从平面PHP文件移到一个新的WordPress安装上,并希望确保所有旧URL都能正确重定向。例如,

旧网址:/va/apply.php现在应该转到:新网址:/退伍军人事务/应用

我已经将/va正确重定向到退伍军人事务,但无法从URL中删除.php。

我不确定这些是否需要一步到位?我已经尝试了我在网上能找到的一切,并在.htaccess中做了尽可能多的调整。

这也是在WordPress上,所以我可能做了一些与那里漂亮的永久链接内容相冲突的事情。

这是我在许多其他代码中尝试过的一些代码。

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*)$ $1.php [NC,L]

这应该会将用户重定向到非PHP位置,但我一直得到404。这一定是我的代码和WordPress的漂亮永久链接的组合。

RewriteCond %{REQUEST_FILENAME}'.php -f
RewriteRule ^(.+)'.php$ $1 [L,QSA]

我刚刚快速浏览了一下你的位置,上面的内容可能会有所帮助。将其添加到wordpress htaccess中,位于所有条目上方,这样它就可以首先更改。。。HTH

好吧,我终于可以正常工作了。再一次,我试图解决的是得到这个网址:

/va/apply.php

要正确重定向到新的WordPress URL,

/退伍军人事务/申请

对我有效的是:

# This will remove the .php extension if it is not a directory, the file does not exist and it's not a WordPress specific admin page
RewriteCond %{REQUEST_URI} !/wp-(content|admin|includes)/ [NC]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}'.php !-f
RewriteCond %{THE_REQUEST} ^(.+)'.php([#?][^' ]*)?' HTTP/
RewriteRule ^(.+)'.php$ $1 [R=301,L]
# The basic redirect for /va
Redirect /va /veterans-affairs

我认为打破它的是你在所有例子中发现的最后一行:

RewriteRule ^([^/.]+)$ $1.php [L]

我认为这是试图在WordPress能够做它需要做的事情之前真正解决URL

我还发现了这个页面,它证明了的洞察力

隐藏.php扩展、设置目录索引、消除重复内容等。