如何从dir及其所有子目录中删除所有.php扩展名?

我的网页是dir结构如下:

移动/
包括/
控制器/
包括/
等等…

我有以下关于/moving问题及其所有子目录:

  1. 我怎样才能请求没有.php扩展名的任何PHP脚本?
  2. 我怎样才能请求...dir/index.php?q=about只是...dir/about
  3. 我把我的.htaccess文件放在哪里?

我明白,我的第一个问题可能是重复的,但为了将我的第二个和第三个问题置于背景之中,我不得不提出这个问题。

使用WampServer 2.0预先感谢。

如果没有“.php”扩展名,apache将不会解析你的php脚本。

但是,你可以使用mod_rewrite :

此模块使用基于规则的重写引擎(基于正则表达式解析器)即时重写请求的URL。 它支持无限数量的规则和每个规则的无限数量的附加规则条件,提供一个真正灵活和强大的URL操作机制。 URL操作可能取决于各种测试,服务器变量,环境变量,HTTP标头或时间戳。 甚至可以使用各种格式的外部数据库查找来实现高度细化的URL匹配。

此模块在每个服务器上下文(httpd.conf)和每个目录上下文(.htaccess)中都对完整的URL(包括路径信息部分)进行操作,并可以在结果上生成查询字符串部分。 重写的结果可能会导致内部子处理,外部请求重定向,甚至导致内部代理吞吐量。内部代理吞吐量。

如果您的所有网站文件都以.php结尾,并且您想要取消.php扩展名,那么您应该创建.htaccess文件,或者如果您已经拥有该文件,请添加以下规则:

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

假设您的网页是让我们说网站/ about.php,网站/ contact.php,网站/ news.php,上面的规则将只是将其转换为网站/ about,site / contact,site / news

希望能帮助到你!

只要你有mod_rewrite路由非PHP的扩展请求到正确的请求,你会把它放在你的根网站目录。