gpt4 book ai didi

php - 如何使用 .htaccess 隐藏 .php URL 扩展?

转载 作者:IT王子 更新时间:2023-10-29 00:20:00 27 4
gpt4 key购买 nike

我想在我的 .htaccess 文件中添加一些内容,以隐藏我的 php 文件的 .php 文件扩展名,因此请访问 www.example.com/dir/somepage 会向他们展示 www.example.com/dir/somepage.php。

是否有任何可行的解决方案?我的网站使用 HTTPS,如果这很重要的话。

目前这是我的 .htaccess:

RewriteEngine On

RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.example.com/$1 [R,L]

ErrorDocument 404 /error/404.php

RewriteCond %{REQUEST_FILENAME}.php -f
RewriteCond %{REQUEST_URI} !/$
RewriteRule (.*) $1\.php [L]

最佳答案

在 DOCUMENT_ROOT 下的 .htaccess 中使用此代码:

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=302,L,NE]

## To internally redirect /dir/foo to /dir/foo.php
RewriteCond %{REQUEST_FILENAME}.php -f [NC]
RewriteRule ^ %{REQUEST_URI}.php [L]

应该注意的是,这也会影响所有 HTTP 请求,包括 POST,这将随后影响所有此类请求,使其落入此重定向,并可能导致此类请求停止工作。

要解决此问题,您可以在第一个 RewriteRule 中添加一个异常(exception)以忽略 POST 请求,因此该规则不允许它们使用。

# To externally redirect /dir/foo.php to /dir/foo excluding POST requests
RewriteCond %{REQUEST_METHOD} !POST
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php [NC]
RewriteRule ^ %1 [R=302,L,NE]

关于php - 如何使用 .htaccess 隐藏 .php URL 扩展?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10028025/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com