如何屏蔽 URL 中的扩展名

Posted

技术标签:

【中文标题】如何屏蔽 URL 中的扩展名【英文标题】:How to Mask Extension in URL 【发布时间】:2011-01-04 11:25:54 【问题描述】:

有没有办法用 php 屏蔽我网站上页面的 URL 扩展? 示例:http://home/subfolder 而不是 http://home.subfolder.php

【问题讨论】:

home.subfolder.php?我不知道 .php 是 TLD。 :) Rewrite all queries to not need the .php extension using a mod_rewrite RewriteRule的可能重复 【参考方案1】:

Apache httpd 的 mod_rewrite 可以在服务器端透明地重写 URL,让你使用任何你喜欢的 URL。

【讨论】:

【参考方案2】:

将以下内容放在您网站根目录的 .htaccess 文件中

<IfModule mod_rewrite.c>
   Options +FollowSymLinks
   Options +Indexes
   RewriteEngine On
   RewriteCond %SCRIPT_FILENAME !-d
   RewriteRule ^([^\.]+)$ $1.php [NC,L]
</IfModule>

【讨论】:

【参考方案3】:

正如其他人所说,如果您在启用 Apache 的服务器上,则使用 mod_rewrite 完成此操作。已经提出了各种类似的问题:

相关:

    How to hide the .html extension with Apache mod_rewrite Removing .php with mod_rewrite

【讨论】:

【参考方案4】:

是的,这是可能的,虽然它与 PHP 无关。

您必须在您的网络服务器的根目录上创建一个名为.htaccess 的文件(如果它尚不存在)。例如,如果您想静默地将用户从 /page/software/ 重定向到 index.php?page=software,您可以使用:

RewriteEngine on 
RewriteRule ^page/([^/\.]+)/?$ index.php?page=$1 [L]

开头部分 (^page/([^/\.]+)/?$) 是一个正则表达式。如果您不确定如何使用它们,请举例说明您正在尝试做什么,我们可以提供帮助。

【讨论】:

以上是关于如何屏蔽 URL 中的扩展名的主要内容,如果未能解决你的问题,请参考以下文章