gpt4 book ai didi

apache - .htaccess 将对文件名 URL 的请求重写为相应的永久链接 URL

转载 作者:行者123 更新时间:2023-12-04 03:37:33 25 4
gpt4 key购买 nike

我对我的 .htaccess 代码有疑问。它正在执行以下操作:

  1. 为每个 URL 添加尾部斜杠
  2. 删除 .php 文件扩展名。

这行得通,所以如果我键入 domain.com/page/,浏览器会显示 domain.com/page.php 的内容。如果我键入 domain.com/page(没有尾部斜杠),浏览器将重定向到 domain.com/page/

但是 如果我键入 domain.com/page.php 浏览器不会重定向到 domain.com/page/

有没有办法将请求domain.com/page.php重定向到domain.com/page/

这是我当前的 .htaccess 代码:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule !(^$|\.[a-zA-Z0-9]{1,5}|/)$ %{REQUEST_URI}/ [R=301,L]

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

感谢您的帮助!

最佳答案

根据您展示的示例,您能否尝试以下操作。请确保在测试您的 URL 之前清除您的浏览器缓存。

RewriteEngine ON
##First 2 rules are added by OP itself.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule !(^$|\.[a-zA-Z0-9]{1,5}|/)$ %{REQUEST_URI}/ [R=301,L]

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

##Newly added rule for removing .php from browser if .php is hit in it.
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php [NC]
RewriteRule ^ %1 [R=301]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*?)/?$ $1.php [NC,L]

关于apache - .htaccess 将对文件名 URL 的请求重写为相应的永久链接 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66601572/

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