.htaccess - 如何使用 htaccess 在 url 中使用最后一个可选的尾随斜杠删除 txt 扩展名的需要

标签 .htaccess mod-rewrite url-rewriting seo friendly-url

如何消除对txt文件的txt扩展名的需要,并在php中使用htaccess正则表达式在url中添加最后一个可选的斜杠
我的代码是

   #turn on url rewriting 
RewriteEngine on

#remove the need for .txt extention
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.txt -f
RewriteRule ^(.*)(/?)$ $1.txt
但是它抛出500 Server错误。代码有什么问题?

最佳答案

根据您显示的示例,您能否尝试以下操作,请确保在测试您的 URL 之前清除浏览器缓存。公平警告我目前还没有测试过。

RewriteEngine ON
RewriteBase /
RewriteCond %{DOCUMENT_ROOT}/$1 !-d
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteCond %{DOCUMENT_ROOT}/$1\.txt -f
RewriteRule ^(.*)/?$ $1.txt [L]
编辑:根据 OP 的评论,添加以下解决方案。
RewriteEngine ON
RewriteBase /
RewriteCond %{REQUEST_URI} /$
RewriteRule ^(.*)/$ $1 [R=301,L]

RewriteCond %{DOCUMENT_ROOT}/$1 !-d
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteCond %{DOCUMENT_ROOT}/$1\.txt -f
RewriteRule ^(.*)/?$ $1.txt [L]

关于.htaccess - 如何使用 htaccess 在 url 中使用最后一个可选的尾随斜杠删除 txt 扩展名的需要,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65802944/

相关文章:

apache - 重定向 CSS 过多

.htaccess - htaccess 使用正则表达式和无限重定向重写规则

wordpress - Apache 2.4 要求 ip 不工作

.htaccess - mod_rewrite 导致排名下降

windows - Mod_rewrite 在 Windows 和 Ubuntu 上有不同的结果

apache - 尝试为丢失的文件强制使用状态代码 200 的 RewriteRule 重定向

为 sourcegraph 重写 Nginx 反向代理子目录

apache - .htaccess 将所有子域重定向到一个目录,并保留 url

.htaccess - 密码使用.htaccess保护单个文件

html - 斜杠不指向带有 htaccess 的目录