regex - .htaccess 在正则表达式中使用反斜杠重写
问题描述
我想用 .htaccess rewriterule 来“捕捉”一个 URL。如何在重写规则中添加反斜杠?
例如:
- http://www.example.com/page1 -> index.php?page=page1
- http://www.example.com/page1/subpage1 -> index.php?page=page1/subpage1
如您所见,我想要重写器中“page1”和“subpage1”之间的反斜杠,因为路径可以是可变的(更多子页面)。
我试过这个:
RewriteRule ^(.*)$ /index.php?page=$1 [NC,L,QSA]
但后来我得到一个内部服务器错误。
提前致谢!
解决方案
您收到内部服务器错误,因为您的规则引入了无限重定向循环。
这就是你想要的
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /index.php?page=$1 [NC,L,QSA]
它在内部重写之前检查 url 是否不是物理文件夹/文件
推荐阅读
- python - 数据框的匹配列将返回另一个数据框的列的值
- azure-pipelines - 将参数文件包含到管道中
- django - 如何在 Django 中为抽象基类获取唯一的序列号?
- angular - Interrupt sequential concatMap calls after error happens in one of them
- reactjs - reactjs在重新渲染父组件时弹出打开和关闭
- gulp - 如何修复 gulpfile.js 以避免“您是否忘记发出异步完成信号?” 当运行“gulp ngrok-serve”并且没有定义任务时?
- javascript - Select2 奇怪的下拉定位
- java - 当我遵循的每个示例都使用相同的转换时,为什么我无法将字符串转换为没有致命异常的浮点数?
- python - scrapy 到 csv 更改数据格式
- ios - UICollectionView:根据UIButton的文字宽度为每个单元格应用动态宽度