2010-07-23 155 views
0

我幅DIR结构如下:如何从dir及其所有子目录中删除所有.php扩展名?

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


我对/moving以下问题及其所有子diretories的:

  1. 我如何可以请求任意PHP脚本,而不.php扩展名?
  2. 我如何要求...dir/index.php?q=about只需...dir/about
  3. 我把我的.htaccess文件放在哪里?

据我所知,我的第一个问题可能是重复,但为了我的情境第二和第三个问题我不得不问它。

使用WampServer 2.0 在此先感谢。

+0

是吗?它工作? – Sirber 2010-07-28 17:33:58

回答

2

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

但是,你可以使用mod_rewrite

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

此模块的完整URL (包括路径信息部分),无论是在 服务器级的(httpd.conf文件)和 目录级的(。htaccess)和 可以生成 结果的查询字符串部分。重写的结果可导致 内部代理处理量,外部 请求重定向或甚至 内部代理吞吐量。内部代理吞吐量。

+0

“apache不会解析你的php脚本,如果他们没有”.php“扩展。”:你在说什么?如果使用“AddType”修改config或.htaccess文件,Apache可以将任何文件扩展名用作PHP。 – 2010-07-23 18:47:56

+0

我应该添加“默认”:) – Sirber 2010-07-23 19:38:49

0

假设你有mod_rewrite将non-php扩展请求路由到正确的请求,你可以把它放到你的根目录下。

1

如果所有的网站文件与.php结尾,你想脱下PHP扩展,那么你应该创建和.htaccess文件,或者如果你已经拥有了它,添加此规则:

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

假设您的网站页面可以说是site/about.php,site/contact.php,网站/ news.php,上述规则将只是将这些转换为网站/ about,site/contact,site/news

希望它有帮助!

相关问题