regex - Apache RewriteRule - 无法匹配字符串的开头

标签 regex apache .htaccess mod-rewrite

我正在尝试使用 .htaccess 文件中的正则表达式匹配 url。

我可以使用“$”匹配字符串的结尾,但当我尝试使用“^”匹配字符串的开头时,RewriteRule 停止工作。

这是我的 .htaccess 文件:

RewriteEngine On
RewriteBase "/"

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule "^example-url$" "index.php"

没有“^”,正则表达式可以工作,但是太松散了。我现在已经摆弄了几个小时,但我不确定还能尝试什么,因为这个非常基本的正则表达式在我尝试过的每个正则表达式测试器中都有效。

我最好的猜测 atm 是它与字符串的实际开头有关,但我不确定如何测试它,因为它应该紧接在顶级域名之后以“/".

编辑: 将 .htaccess 移动到 html 文件夹使我所有的问题都消失了,上面的 .htaccess 文件现在可以正常工作了。非常感谢@Riad Loukili 和@P0lT10n 的帮助。

我猜我的问题是由我的虚拟目录设置方式引起的。

最佳答案

不确定但试试

RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^example-url$ index.php

我在 This .htaccess tester 上试过了它奏效了。

可能的解释:您已经指定了 RewriteBase,正则表达式中的 url 不需要以/开头。

关于regex - Apache RewriteRule - 无法匹配字符串的开头,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37979684/

相关文章:

php - 在本地主机上的通配符子域上设置 HTTPS

apache - 无法在 apache2 中启用 .htaccess

regex - 在正则表达式替换字符串中转义美元符号

java - 具有事件驱动匹配的正则表达式实现?

Python 解析器 ply 匹配错误的正则表达式

javascript - 反向正则表达式匹配

java.lang.ClassNotFoundException : org. apache.commons.text.WordUtils 问题

php - 启用/安装 Curl 扩展(OSX 服务器/PHP 5.3.3/Apache 2.2)

regex - 如何为 a/b/c 创建 htaccess seo 友好的 url 重写规则

html - Effect Permalink .htaccess 加载css文件