【问题标题】:How do I remove the requirement for a file extension on my site如何在我的网站上删除对文件扩展名的要求
【发布时间】:2013-12-10 07:34:47
【问题描述】:

我已经检查了几个小时的文档、Stack Overflow 和谷歌。此外,还进出几个 IRC 频道。

在编辑这些文档方面,我是一个相当大的新手,所以请耐心等待。 我的意思是,当你说“httpd.conf”时,我已经在寻找它了。它不存在。所以,请告诉我它是否真的是 apache2.conf 或者文件名是什么。

所以,我从 Ubuntu 切换到 Kali Linux。我一直在开发一个网站,到目前为止,我从来没有在我的 URL 末尾添加 .php。但是,现在,似乎出乎意料的是,如果不包括在内,我会得到 404。

example: This is what I have to do

[URL: localhost/videos.php]

This is what I want to do

[URL: localhost/videos]

我该如何解决这个问题?

我尝试过的事情:

进出多个目录块:

[/phpmyadmin/apache.conf]
Options Indexes FollowSymLinks Multiviews

[.htaccess]
mod_rewrite just causes E_500's left and right.

[/apache2/mods-available/php5.conf]
[*] mod_rewrite
[*] Options Multivews

如果有人可以帮助我,将不胜感激, 我整天都在处理它,我需要让它工作 这样我就可以完成剩下的项目了。

[编辑:一个实际的答案 VS 以无益的方式弄乱我的帖子。下次试试第一个。]

【问题讨论】:

  • mod_rewrite 在Apache 中被激活?
  • 您能否编辑问题标题并将其更改为更具描述性的内容?
  • 尝试在 .htaccess 顶部添加 Options +MultiViews 行,然后重新测试。
  • 当我添加选项+Multiviews时它仍然出现404

标签: php .htaccess apache2


【解决方案1】:

我猜测您服务器上的文件具有.php 扩展名,并且某处有一个文件处理程序通过 php.ini 提取这些页面。我也猜想如果你的 www-root 中有一个文件 test.php,你仍然可以通过 example.com/test.php 访问它。

首先确保在您的服务器配置中启用了mod_rewrite。 mod_rewrite.so 必须位于正确的文件夹中,并且 LoadModule rewrite_module modules/mod_rewrite.so (或类似的)行应该被取消注释。确保在更改主配置文件时重新启动 Apache。这些是在启动时加载的,而不是像.htaccess 那样动态执行。确保在 www-root 的 .htaccess 中启用了 FollowSymLinks 选项。 AllowOverride 必须至少在您的httpd.conf 中设置为FileInfo(或作为主配置文件的任何功能)。

那么这条规则应该有效。它会测试文件是否以文件扩展名结尾,并在内部将其重写为带有.php 附加的同一文件。

RewriteCond %{REQUEST_URI} !\.[a-z]+$
RewriteRule ^(.*)$ /$1.php [L]

如果您仍然收到内部服务器错误,请查看您的 Apache 错误日志。它会准确地告诉您在错误发生之前发生了什么。

【讨论】:

  • 这不是我要找的,朋友。我在顶部进行了编辑,但基本上 [localhost/videos] 是 404,因为没有具体说明并放入 [localhost/videos.php]。
  • 我认为您想编辑该重写以排除已经以 .php 结尾的 URL 否则,@DouglasHarding 这就是您所需要的。
  • 这仍然会产生 500 错误。我刚刚发现了如何打开 AllowOverride ALL,这并没有真正解决任何问题。
  • @aross 除非您想将/myjavascriptfile.js 重写为/myjavascriptfile.js.php,否则不应该如此!我排除了 每个 文件扩展名是有原因的,因为如果文件具有文件扩展名,则可以假定它具有正确的文件扩展名。
  • @Sumurai8 好点,我假设文件 URL 是通过应用程序管理的,但这里可能不是这样。
猜你喜欢
  • 2015-05-18
  • 2019-02-08
  • 2011-09-25
  • 1970-01-01
  • 2017-02-24
  • 1970-01-01
  • 1970-01-01
  • 2011-12-02
  • 1970-01-01
相关资源
最近更新 更多