如何消除对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/