如何屏蔽 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 的扩展名?