如何删除网站上的文件扩展名要求

时间:2013-12-10 07:34:48

标签: php .htaccess apache2

我一直在查看文档,Stack Overflow和谷歌几个小时。此外,浸入和退出几个IRC频道。

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

所以,我从Ubuntu切换到了Kali Linux。我一直在开发一个网站,直到现在,我从来没有必要在我的URL末尾添加.php。然而,现在,似乎突然之间,如果不包括404,我会得到404。

example: This is what I have to do

[URL: localhost/videos.php]

This is what I want to do

[URL: localhost/videos]

我该如何解决这个问题?

我尝试过的事情:

进出多个dir块:

[/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以无用的方式搞乱我的帖子。请在下次尝试第一个。]

1 个答案:

答案 0 :(得分:0)

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

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

然后这个规则应该有效。它测试文件是否未在文件扩展名上结束,并在内部将其重写为附加.php的同一文件。

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

如果仍然出现内部服务器错误,请查看Apache错误日志。它会告诉您错误发生之前发生了什么。