Apache 为什么页面没有文件扩展名就不能加载

Apache 为什么页面没有文件扩展名就不能加载,apache,.htaccess,mod-rewrite,url-rewriting,friendly-url,Apache,.htaccess,Mod Rewrite,Url Rewriting,Friendly Url,我有一个页面url/clubs/england/arsenal/,但它不会加载,除非它显示为/clubs/england/arsenal.php 我已经在.htaccess中添加了以下内容 RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^([^/]+)/$ $1.php RewriteRule ^([^/]+)/([^/]+)/$ /$1/$2.php RewriteCond %{REQUEST_FILENAME

我有一个页面url
/clubs/england/arsenal/
,但它不会加载,除非它显示为
/clubs/england/arsenal.php

我已经在.htaccess中添加了以下内容

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/$ $1.php
RewriteRule ^([^/]+)/([^/]+)/$ /$1/$2.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/)$
RewriteRule (.*)$ /$1/ [R=301,L]

有了你们展示的样品,你们能试一下下面的吗。 请确保在测试URL之前清除浏览器缓存

RewriteEngine ON
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}/$1/$2.php -f
RewriteRule ^(clubs/england)/(.*)/?$ $1/$2.php [NC,L]

非常感谢你!问题解决了!有没有一种更通用的方法可以让网站上的任何文件都删除扩展名?@OwenGaudion,欢迎光临,你能给我一个你想在后端重写的示例链接吗?谢谢。我只是想看看是否有一个更“开箱即用”的解决方案可以复制到任何未来的项目中。例如,在这个项目中,可能有4/5个其他俱乐部/文件。显然,这是可以管理的,但如果有一百个,最好有更通用的东西:)@OwenGaudion,用于基于通用路径的;如果您正在谈论的路径可以是任何路径,那么将最后一行规则更改为以下
RewriteRule^([^/]*)/([^/]*)/(.*)/?$$1/$2/$3.php[NC,L]
,并将最后第二条规则更改为
{DOCUMENT_ROOT}/$1/$2/$3.php-f
,应该适用于任何路径,如果这是您的意思,干杯,快乐学习。完美!砸东西!谢谢你的帮助:)