我正在学习如何为 .htaccess 重定向编写正则表达式。到目前为止,我已经设法弄清楚我需要的一切,除了几个不符合我预期的正则表达式。我正在使用桌面应用程序测试我的正则表达式,它们在那里工作正常,但在 .htaccess 文件中却不行。
仅供参考: RewriteBase 设置为/site/
这是传入的 URL:
/site/view-by-tag/politics/?el_mcal_month=3&el_mcal_year=2009
我想抓住“政治”并重定向到/site/tags/politics/
这是我使用的:
RewriteRule ^view-by-tag/([a-zA-Z\-]+)/([a-zA-Z0-9\-\/\.\_\=\?\&]+) /tags/$1/ [R=301,L]
我在之后添加了所有字符的捕获,politics
因为我遇到的问题是,当?
URL 中有一个时,重定向不起作用,我不知道为什么。在上面给出的 URL 中,如果我删除?
它可以正常工作,但如果?
它在那里,则不会发生任何事情。是否有一个原因?
当我尝试307
从/site/?option=com_content&view=article&id=307&catid=89&Itemid=55
我使用了这个正则表达式,article&id=([0-9]+) /?p=$1 [R=301,L]
但同样,当?
URL 中有 a 时,它会停止重定向以执行任何操作。
这是什么原因?
有问题的.htaccess
文件位于 Wordpress 博客 (3.4.1) 上