gpt4 book ai didi

php - 重写 URL 以删除导致循环的 .php

转载 作者:搜寻专家 更新时间:2023-10-31 21:10:55 25 4
gpt4 key购买 nike

我想重写我网站上的 url,

  1. www.example.com/login 指向www.example.com/login.php

  2. www.example.com/login/ 也指向 www.example.com/login.php

  3. 站点内部的页面应遵循上述规则。即

    www.example.com/inner/inner2/something并且 www.example.com/inner/inner2/something/ 也应该指向

    www.example.com/inner/inner2/inner3/something.php

  4. www.example.com/login/anything ,如果不存在应该显示 404 (因为在我的情况下它会导致循环)

我写的规则是:

   RewriteEngine On
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*[^/])$ $1.php [L]
RewriteRule ^(.+)/$ $1.php [L]

它在上面的 3 种情况下工作正常,但在第 4 种情况下它会导致循环。

如果请求扩展名为 .php 的文件,我还想显示 404。

此外,如果我使用 REQUEST_URI 而不是 REQUEST_FILENAME,上述规则的行为也会发生变化。两者有什么区别?

TIA

最佳答案

尝试使用此规则隐藏 php 扩展:

# To externally redirect /dir/file.php to /dir/file
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+(.+?)\.php[\s?] [NC]
RewriteRule ^ /%1 [R=301,L,NE]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}/$1.php -f
RewriteRule ^(.+?)/?$ /$1.php [L]

关于php - 重写 URL 以删除导致循环的 .php,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19584670/

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