gpt4 book ai didi

php - Linux CentOS 7 - 通过.htaccess配置httpd.conf文件

转载 作者:太空宇宙 更新时间:2023-11-04 10:11:12 24 4
gpt4 key购买 nike

  1. 我需要通过 Linux CentOS 7 中的 .htaccess 配置我的 info.php 文件显示时没有扩展名。即调用http://server address/info而不是调用http://server address/info.php

  2. 此外,在 .htaccess 中,添加 phpinformation 重定向到 info。即 http://server address/phpinformation 重定向到 http://server address/info

我已经关注了下面的部分article .

httpd.conf 文件中,我已将 AllowOverride none 更改为 AllowOverride AuthConfig

下一步是什么?

最佳答案

要重写您的文件,您应该覆盖 FileInfo 类型的指令,而不是 AuthConfig 类型的指令(请参阅 https://httpd.apache.org/docs/2.4/mod/core.html#allowoverride 以获取引用)

在apache配置中启用mod_rewrite模块并在 .htaccess 文件中使用类似的配置:

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^phpinformation$ info.php [L]
RewriteRule ^info$ info.php [L]
</IfModule>

更通用的配置:

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^phpinformation$ info.php [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ $1.php [L]
</IfModule>

第一个重写规则是相同的,如果您必须使用仅包含 phpinformation 的 url 提供请求,请将其重写为 info.php 并提供该 url。 L 修饰符意味着重写器不需要搜索额外的重写并且可以只要求 apache 提供结果 (info.php) 规则。

第二个规则有点不同,重写引擎只有在所有前面的条件都满足时才会执行重写。在这种情况下,原始 url 不会解析为现有文件 (!-f) 或目录 (!-d)。如果文件/目录存在,它将照常提供

您可能还想执行外部重定向以强制客户端访问资源的官方 url,在这种情况下,第一个示例可以更改为类似的内容:

RedirectMatch ^/phpinformation$ /info
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^info$ info.php [L]
</IfModule>

为什么不对两个 url 使用 RedirectMatch?原因是客户端用户在浏览器上看到重定向的 url,因此我们需要删除的 .php 后缀会再次弹出。

引用资料

Mod_rewrite documentation
AllowOverride documentation
RedirectMatch documentation

关于php - Linux CentOS 7 - 通过.htaccess配置httpd.conf文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48984999/

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