我一直在查看文档,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以无用的方式搞乱我的帖子。请在下次尝试第一个。]
答案 0 :(得分:0)
我猜你服务器上的文件有.php
扩展名,并且某处有一个文件处理程序通过php拉取这些页面。我也猜测如果你的www-root中有一个文件test.php
,你仍然可以访问example.com/test.php
来访问它。
首先确保在服务器配置中启用mod_rewrite
。 mod_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错误日志。它会告诉您错误发生之前发生了什么。