我目前正在努力制定一个htaccess规则——我对htaccess的知识相当缺乏。
我想在内部重写(即不重定向)一个包含 http://example.com/resources/3d/35d891df36cc4f08e10915e267ff54e4/index.php 到 http://example.com/3d/resources/35d891df36cc4f08e10915e267ff54e4/ 为了在一些遗留代码中解决一个非常糟糕的实现。我已经编写了以下规则来执行重定向:
http://example.com/resources/3d/35d891df36cc4f08e10915e267ff54e4/index.php
http://example.com/3d/resources/35d891df36cc4f08e10915e267ff54e4/
RewriteCond %{REQUEST_URI} ^/resources/3d/([a-zA-Z0-9]+)/index.php$ RewriteRule /3d/resources/$1 [NC]
然而,虽然第一部分是匹配的,第二部分不是,我看不出哪里出错了。还有人能指出错误吗?
htaccess测试仪链接 here
你真的很快就要开始工作了。所以我做了两个小小的改变来实现这个目标:
RewriteCond %{REQUEST_URI} ^/resources/3d/([a-zA-Z0-9]+)/index.php$ RewriteRule ^ /3d/resources/%1? [NC]
添加 ^ 重写规则和更改 $1 到 %1 .你的使用 $ 再次获取资源目录而不是查询,将其更改为 %1个 解决了这个问题。我又加了一句 ? 停止将任何进一步的查询添加到url的末尾。
^
$1
%1
$
%1个
?
测试链接-> Here