如何屏蔽 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 中的扩展名的主要内容,如果未能解决你的问题,请参考以下文章

如何从 Flutter 中的 url 获取 Image 的扩展名?

Swift 中的 iOS 共享扩展抓取 URL

使用应用扩展更改 Safari URL

从没有 .xml 扩展名的 URL 解析 XML

如何删除 RESTful WCF 服务中的“.svc”扩展名?

Chrome 屏蔽广告的扩展 AdBlock 和 Adblock Plus 哪个更强大