我使用php来构建web应用程序,但是我希望我的网页在浏览器地址栏中没有.php扩展名。例如http://www.example.com/index.php
在浏览器的地址栏中显示如http://www.example.com/index
。如何从地址栏中隐藏.php
我怎样才能做到这一点?
我使用php来构建web应用程序,但是我希望我的网页在浏览器地址栏中没有.php扩展名。例如http://www.example.com/index.php
在浏览器的地址栏中显示如http://www.example.com/index
。如何从地址栏中隐藏.php
我怎样才能做到这一点?
在你的WWW根命名.htaccess
文件将这个:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(([A-Za-z0-9\-]+/)*[A-Za-z0-9\-]+)?$ $1.php
钍如果你正在运行Apache并且启动了mod_rewrite,那么这些工作是有效的。
你能解释一下吗? – 2014-02-21 06:54:05
@ ling.s:现在就看到你的评论。当然。这里重要的是RewriteRule,它将任何请求URI的完整路径与任何PHP文件进行匹配,并将其传递给文件$ 1.php,$ 1是该正则表达式的第一个(也是唯一)匹配项。 – 2015-11-26 10:12:13
在使用Apache网络服务器的系统上,您可以使用mod_rewrite。
在较新版本的IIS上,您可以使用它们的mod_rewrite版本。在旧版本中,你需要购买一个插件。
搜索栈溢出,你应该找到答案,已经提出的问题。
只是要指出,在IIS的旧版本,例如IIS6,并假设你是在一个32位的进程,然后IONICS ISAPI重写是一个梦幻般的免费网址重写模块。在IIS 6的64位内部,我发现商业产品Helicon ISAPI Rewrite 3是一个很好的工具。但是,如果你使用32位,IONICS是免费的,你可以做任何你需要的。
在apache2.conf我
<Files data>
ForceType application/x-httpd-php
</Files>
这意味着data
被视为一个PHP文件不带扩展名
有这样做的几种方法。
您可以使用mod-rewrite将foo重新连接到foo.php,这样/ bar的请求就会被/bar.php处理。
您可以使用目录和默认的文件,让你链接到猪病/富/它获取由/foo/index.php
处理您可以设置一个PHP脚本作为处理程序404 - 错误,那么你只需链接到不存在的文件,然后处理程序文件处理它,但它喜欢。 (通常通过使用从url到php文件的某种映射)
您可以告诉您的网络服务器,某个网络服务器的所有请求都由php来处理。
第一个或第二个解决方案是最简单的,但最后的两个解决方案提供了最好的灵活性,其变体是大多数大型框架所做的。
这是用于URL重写的a beginners tutorial。
在WAMP只需创建一个.htaccess文件/ WWW/和复制粘贴此代码..
Options +FollowSymlinks
RewriteEngine On
RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.+)$ /$1.php [L,QSA]
希望!这对某人会有用!
Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase/
# To externally redirect /dir/foo.php to /dir/foo/
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php [NC]
RewriteRule^%1 [R,L]
# To internally redirect /dir/foo/ to /dir/foo.php
RewriteCond %{DOCUMENT_ROOT}/$1.php -f
RewriteRule ^(.*?)/?$ $1.php [L]
little modification - better to use REQUEST_URI and check for the directory
# Turn mod_rewrite on
RewriteEngine on
# To externally redirect /dir/foo.html to /dir/foo/
RewriteCond %{REQUEST_URI} ^(.+)\.html?$ [NC]
RewriteRule^%1 [R,L]
# To internally redirect /dir/foo/ to /dir/foo.html
RewriteCond %{DOCUMENT_ROOT}/$1 !-d
RewriteCond %{DOCUMENT_ROOT}/$1.html -f
RewriteRule ^(.*?)/?$ $1.html [L]
# To externally redirect /dir/foo.html to /dir/foo/
RewriteCond %{REQUEST_URI} ^(.+)\.html?$ [NC]
RewriteRule^%1 [R,L]
# To internally redirect /dir/foo/ to /dir/foo.html
RewriteCond %{DOCUMENT_ROOT}/$1 !-d
RewriteCond %{DOCUMENT_ROOT}/$1.html -f
RewriteRule ^(.*?)/?$ $1.html [L]
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
欢迎来到StackOverflow!上面的代码究竟在哪里?请简要说明所发布的任何代码的上下文。 – 1000Nettles 2018-03-03 03:29:01
你必须使用htaccess的为 – 2011-04-29 11:58:15
某种类型相关:[?为什么有些网站的网址不包括文件扩展名(HTTP:// stackoverflow.com/questions/3631153/how-come-some-site-urls-do-not-include-a-file-extension) – Gumbo 2011-04-29 12:04:20