php - 用斜杠重写规则问题
问题描述
我有一个带有网址的网站
我添加了用于从 url 中删除 .php 扩展名的代码,如下所示
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule !.*\.php$ %{REQUEST_FILENAME}.php [QSA,L]
如果有人用 url 搜索
http://mywebsite.com/abc 它工作正常。
如果有人使用http://mywebsite.com/abc/进行搜索,我需要 使用 htaccess将其强制重定向到http://mywebsite.com/abc
解决方案
你可以使用这个:
RewriteEngine on
#redirect and remove trailing slash
#from all URIs except directories "!-d"
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)/?$ /$1 [L,R=301]
#remove .php extension
#this allows you to access php files without extension
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.+)/?$ /$1.php [QSA,L]
推荐阅读
- python-3.6 - Wsgi 错误:ModuleNotFoundError:没有名为“django_webapp”的模块
- node.js - Express 服务器在 EC2 上没有响应
- html - 在 CSS 中调整滚动球的高度
- python - 谁能解释一下这个代码中successful_frame_read的目的是什么?
- node.js - 使用 icognito 身份池时,在 Lambda 函数中获取 context.identity 中的用户信息
- javascript - 如何在 React 中从多个端点获取和显示数据?
- django - 从 rest-auth social Login 获取用户 ID
- c# - 每当我通过 SSH-ing 执行我的 git 命令时,我在 c# 代码输出中遇到错误
- python - 如何将数据框导出到单元格列表而不是行列表?
- next.js - 如何使用 NextJS 和 TailwindCSS 更改悬停图像?