为了账号安全,请及时绑定邮箱和手机立即绑定

使用.htaccess删除.php扩展名

使用.htaccess删除.php扩展名

PHP
慕码人8056858 2019-05-28 17:05:21
使用.htaccess删除.php扩展名是的,我已阅读Apache手册并在此搜索。出于某种原因,我根本无法让这个工作。我最接近的是删除扩展名,但它指向根目录。我希望这只是在包含该.htaccess文件的目录中工作。我需要对.htaccess文件做三件事。我需要它来删除.php一个。我有几个页面使用选项卡,URL看起来像page.php #tab - 这可能吗?湾 我有一个页面使用附加到URL的会话ID,以确保您来自正确的地方,www.domain.com/download-software.php?abcdefg。这可能吗?另外,在执行此操作时,是否需要从头文件导航包含文件中的链接中删除“.php”?应该IE "<a href="support.php">support</a>" be <a href="support">support</a>?我希望它在每个URL之前强制使用“www”,所以它不是domain.com,但是www.domain.com/page。我想从页面中删除所有尾部斜杠。我会继续寻找,尝试等等。会在子目录中导致任何问题吗?
查看完整描述

3 回答

?
一只名叫tom的猫

TA贡献1906条经验 获得超3个赞

Gumbo在Stack Overflow问题中的答案如何使用Apache mod_rewrite隐藏.html扩展名应该可以正常工作。

重新1)将.html更改为.php

重新a。)是的,这是可能的,只需添加#tab到URL。

Re b。)可以使用QSA(Query String Append),见下文。

应该也适用于子目录路径:

RewriteCond %{REQUEST_FILENAME}.php -fRewriteRule !.*\.php$ %{REQUEST_FILENAME}.php [QSA,L]


查看完整回答
反对 回复 2019-05-28
?
qq_遁去的一_1

TA贡献1725条经验 获得超7个赞

除了上面的其他答案,

您也可以尝试从文件中完全删除.php扩展名,并避免无限循环

RewriteEngine OnRewriteBase /RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php [NC]RewriteRule ^ %1
 [R=301,L]RewriteCond %{REQUEST_FILENAME} !-dRewriteCond %{REQUEST_FILENAME}.php -fRewriteRule ^(.*?)/?$ $1.php [NC,L]

此代码将在Root / .htaccess中运行,如果要将其放在子目录中的htaccess文件中,请务必更改RewriteBase。

编辑:

在apache 2.4及更高版本中,您还可以使用END标志来防止无限循环错误。以下示例与apache 2.4上的相同,

RewriteEngine onRewriteRule ^(.+)\.php$ /$1 [R,L]RewriteCond %{REQUEST_FILENAME}.php -fRewriteRule ^(.*?)/?$ /$1.php [NC,END]


查看完整回答
反对 回复 2019-05-28
  • 3 回答
  • 0 关注
  • 732 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信