我想要这个网址:
http://www.awesomehost.com/accountants/Ceribelli-Associates-cd01qazwsxoztfnlvsim.html
并将其重定向到:
http://www.awesomehost.com/accountants/accountant-directory.php?ID=cd01qazwsxoztfnlvsim
以下是我在会计师目录的.htaccess中所拥有的内容:
RewriteEngine On
RewriteRule ^accountants/(.*)-cd0(.*).html /accountants/accountant-directory.php?ID=cd0$2 [L,P]
我还尝试使用前导斜杠并移除了P标志:
RewriteEngine On
RewriteRule ^/accountants/(.*)-cd0(.*).html /accountants/accountant-directory.php?ID=cd0$2 [L]
但由于某种原因,它没有被触发?
当我在.htaccess文件中输入一些随机文本时,我收到apache错误,所以我知道它正在读取文件......
有任何帮助吗?
答案 0 :(得分:1)
RewriteRule在TLD之后开始匹配,并且您在没有前导斜杠的情况下匹配行首。那么如果你尝试怎么办?
RewriteRule ^/accountants/(.*)-cd0(.*).html ...
顺便说一句,小心使用编程生成的URL和。*重写 - 注意贪婪与非贪婪的匹配。
另外,确保[P]是你想要的吗?如果使用了恶意制作的URL并且您的RewriteRule未被充分过滤,则可能会冒着代理到非预期服务器的风险。
答案 1 :(得分:0)
尝试删除模式的“会计师/”部分。 Apache仅从.htaccess文件的当前目录开始匹配。
RewriteEngine On
RewriteBase /accountants
RewriteRule ^(.*?)-cd0(.*?).html accountant-directory.php?ID=cd0$2 [L]