我将旧网站从平面PHP文件移动到新的WordPress安装,并希望确保所有旧网址都正确重定向。例如,
旧网址:/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的组合'非常永久的。
答案 0 :(得分:0)
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.+)\.php$ $1 [L,QSA]
我刚刚快速浏览了您所处的位置,以上情况可能有所帮助。将它添加到wordpress htaccess上面的所有条目,以便它可以先改变它... HTH
答案 1 :(得分:0)
好的,我终于让这个工作正常了。同样,我试图解决的问题是获取此URL:
/va/apply.php
正确地重定向到新的WordPress网址
/退伍军人-事务/应用
对我有用的是:
# 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。
我还发现这个页面非常有见地
Hide .php Extension, Set Directory Index, Eliminate Duplicate Content, etc.