如何执行所有.php URL的301重定向以清除URL?

如何执行所有.php URL的301重定向以清除URL?,php,url,.htaccess,rewrite,clean-urls,Php,Url,.htaccess,Rewrite,Clean Urls,我的htaccess没有按我希望的方式工作。我在这里看到过一些类似的线程,但它们不是我所需要的,而且我对htaccess的了解还不够,无法修改代码以满足我的需要 这就是我目前所做的工作:我已经将所有非www URL重定向到www URL,并且我正在将所有URL内部重写到服务器上相应的PHP文件。在这些文件中,我有相对链接,它们是干净的,没有任何文件扩展名 这就是我需要做的:我网站上的所有页面仍然可以通过URL访问,最后是.php。出于SEO的原因,我希望URL的with.php都执行一个外部30

我的htaccess没有按我希望的方式工作。我在这里看到过一些类似的线程,但它们不是我所需要的,而且我对htaccess的了解还不够,无法修改代码以满足我的需要

这就是我目前所做的工作:我已经将所有非www URL重定向到www URL,并且我正在将所有URL内部重写到服务器上相应的PHP文件。在这些文件中,我有相对链接,它们是干净的,没有任何文件扩展名

这就是我需要做的:我网站上的所有页面仍然可以通过URL访问,最后是.php。出于SEO的原因,我希望URL的with.php都执行一个外部301重定向到干净的URL,而不带扩展名

这是我在服务器根文件夹中的htaccess文件中的内容

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php
RewriteBase /
RewriteCond %{HTTP_HOST} ^domain.com [NC]
RewriteRule ^(.*)$ http://www.domain.com/$1 [L,R=301]

我非常感谢你的帮助。提前谢谢

我认为这应该行得通

RewriteRule ^(.*)\.php$ $1 [L,R=301]
L=最后一条规则(如果此模式匹配,Apache将停止处理规则)