没有.php扩展名的PHP URL格式?

new*_*ode 3 php mod-rewrite url-rewriting

我需要的是获取一个字符串作为URL而不显示PHP文件名.我有文件contact.php页面我试图获取URL,例如

本地主机/ contact.php

这就是现在我得到的东西,我需要访问此页面

本地主机/接触

对于每个页面,我应该只能按名称导航.

localhost/contact
localhost/help
localhost/support

Jac*_*oer 8

.htaccess如果您使用的是apache,则需要使用文件.如果您使用的是IIS,则可以在IIS中进行配置.

看看这个.

您的.htaccess文件需要看起来像这样:

IndexIgnore * # prevent directory listing

Order deny,allow
Allow from *

# ------------------------------------------
# Rewrite so that php extentions are not shown
RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php
Run Code Online (Sandbox Code Playgroud)

.htaccess由于文件限制,您不能简单地在Windows中创建文件,因此打开文本编辑器(Notepad ++或您的编程IDE)并创建一个名为的新文件.htaccess.该.是在文件名前面重要.

编辑

没有重复的文件名.IE浏览器contact.php,并contact.jshtaccess将不知道要提供的一个,它(取决于你的Apache),或者返回一个错误页面,否则将服务只是其中之一.

正如@AedixRhinedale在下面的评论中指出:

来自Apache的一条说明:如果您有权访问httpd主服务器配置文件,则应该完全避免使用.htaccess文件.使用.htaccess文件会降低Apache http服务器的速度.您可以包含在.htaccess文件中的任何指令都可以在目录块中更好地设置,因为它具有相同的效果和更好的性能

  • 在[Apache](http://httpd.apache.org/docs/2.2/en/howto/htaccess.html)上添加一条说明:*如果您有权访问,应该完全避免使用`.htaccess`文件到httpd主服务器配置文件.使用`.htaccess`文件会降低Apache http服务器的速度.你可以包含在`.htaccess`文件中的任何指令都可以更好地设置在`Directory`块中,因为它具有相同的效果和更好的性能.* (3认同)
  • @AedixRhinedale 感谢我将其添加到答案中并将该注释归因于您:)。我其实不知道 (2认同)