.htaccess - htaccess 过滤器不起作用
问题描述
我正在尝试重写我的网址,但我也在使用路由器。所以我希望路由器控制错误页面,例如找不到错误 404,而不是我的 htaccess 文件。一切工作正常,除了我的 htaccess 文件中的过滤器字符串。这是重写行:
RewriteEngine On
RewriteRule ^([a-zA-Z0-9-z\-\_]+)$ index.php?urlpath=$1
那么问题是它不接受像 . 和 /
所以这有效:https ://www.mystem.tk/aurlthatdoesntexist
但这不起作用:https ://www.mystem.tk/apagethatdoesntexist.php
这也不起作用:http ://www.mystem.tk/a/url/that/doesnt/exist
最后一个:https ://www.mystem.tk/a/page/that/doesnt/exist.php
我希望我的问题通过这种方式很清楚......您可以在https://www.mystem.tk/上自行查看
解决方案
这是由于您的正则表达式[a-zA-Z0-9-z\-\_]+
不允许点或正斜杠。
您可以使用此规则而不是现有规则:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .+ index.php?urlpath=$0 [L,QSA]
推荐阅读
- javascript - 解析嵌套 JSON 并以特定格式显示
- angular - 在 Google Chrome 浏览器中使用 Angular 7 和 ASP.Net Core 2.2 的 ERR_INVALID_HTTP_RESPONSE
- angular - 在 Angular 中,是否可以根据用户是否经过身份验证来加载不同的模块?
- node.js - 使用 nodejs 编码的 jwt 令牌进行解码 使用颤振(飞镖)制作
- swift - Swift / ARKit:将对象节点放置在检测到的表面上而不触摸屏幕
- apache - Java 重定向 + 域
- tags - 带有 CoNLL 2003 NER 任务描述的可能标签列表是什么?
- javascript - 在 UWP 中使用 Composition 制作移动圆圈
- botframework - 在 MS Bot 框架中的第二个 Slack 工作空间上与 Slack Channel 通信的问题
- sql-server - 如何加入 To Select 语句