.htaccess规则中的冲突

.htaccess规则中的冲突,.htaccess,friendly-url,errordocument,.htaccess,Friendly Url,Errordocument,我不太熟悉.htaccess,但在.htaccess文件中有以下内容: RewriteEngine On RewriteCond %{HTTPS} on RewriteCond %{REQUEST_URI} !.*\.(ico|gif|jpg|jpeg|png|js|css) RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] RewriteRule ^centurion/programme-(.*).php$ ./cen

我不太熟悉.htaccess,但在.htaccess文件中有以下内容:

RewriteEngine On 
RewriteCond %{HTTPS} on
RewriteCond %{REQUEST_URI} !.*\.(ico|gif|jpg|jpeg|png|js|css)
RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

RewriteRule ^centurion/programme-(.*).php$ ./centurion/programme.php?cid=$1
RewriteRule ^klerksdorp/programme-(.*).php$ ./klerksdorp/programme.php?cid=$1
RewriteRule ^tygervalley/programme-(.*).php$ ./tygervalley/programme.php?cid=$1
RewriteRule ^rustenburg/programme-(.*).php$ ./rustenburg/programme.php?cid=$1
RewriteRule ^witbank/programme-(.*).php$ ./witbank/programme.php?cid=$1

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.php [NC,L]
上面的代码通过将url更改为更具描述性的动态页面,并删除“静态”页面的.php扩展名,基本上使url变得“友好”

这一切都很完美。但现在我还需要重定向错误/未找到文件页面。我尝试添加以下内容(使用相对路径和绝对路径):

但当我输入错误的url(在浏览器中)时,仍然会出现“未找到文件”错误(不是重定向页面)

添加以下内容时,所有页面都重定向到index.php页面:

RewriteRule ^.*$ /index.php [L] 
当我的.htaccess文件中只有以下代码时,错误的url会按预期重定向

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^.*$ /index.php [L] 
但是,很明显,我的“友好”url规则中没有一条起作用


如何让“友好”url规则和不正确的url重定向一起工作?

给出一个“不正确”url的适当示例。它可以是(没有sample.php文件的地方)或类似的东西(这是一个旧链接,程序不再提供)尝试并设置最后一个条件
RewriteCond%{REQUEST\u FILENAME}.php-f
-如果请求的内容作为文件存在,则在附加后缀
.php
时,只需将其重写为该文件。@04FS谢谢。据我所知,更改该条件会在我的“友好”url的末尾添加.php扩展名,例如example.com/program-accounting现在变成example.com/program-accounting.php。这并不能解决我的问题。没有外部重定向,所以我不认为这是可能的。
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^.*$ /index.php [L]