我想要这个网址
http://www.test.racebooking.net/rankings/classifica.html
指向
http://www.test.racebooking.net/rankings.php
因此,我在.htaccess文件中写了这条规则
RewriteRule ^rankings\/[a-zA-Z0-9\-]+\.html$ /rankings.php
我真的无法弄清楚为什么,当我输入第一个网址时,我会收到404错误信息。
我的规则有什么问题?
当我在任何在线正则表达式测试器中测试正则表达式时,它检测到字符串“rankings / classifica.html”,这意味着正则表达式实际上对应,但没有任何工作....
答案 0 :(得分:0)
我发现了错误,但我没有找到原因。
基本上,如果 pattern 和 substitution 以相同的单词开头,则RewriteRule不起作用。
示例强>
如果我在.htaccess中写下这条规则:
RewriteRule ^rankings\/[a-zA-Z0-9\-]+\.html$ /rankings.php
并输入此网址
http://www.mywebsite.net/rankings/classifica.html
我收到404错误。即使正则表达式是正确的,apache RewriteEngine也无效。相反,如果我写这个规则:
RewriteRule ^ran-kings\/[a-zA-Z0-9\-]+\.html$ /rankings.php
并输入此网址
http://www.mywebsite.net/ran-kings/classifica.html
一切正常。