我想重写动态网址
/index.php?pid=login&redirect=/previous-page.html
这样的事情
/login.html-r-previous-page.html
我试过这个
RewriteRule ^login.html-r-(.*)$ /index.php?pid=login&redirect=$1 [L]
但没有成功。我也试图将正则表达式改为。+或其他一些形式,但似乎没用。也许我在其他地方犯了错误。
我是正则表达式的新手,也是mod_rewrite。
感谢您的帮助
答案 0 :(得分:1)
你必须转义点字符,你应该转义反向引用,因为它将成为查询字符串的一部分。你也不一致的是,正则表达式模式匹配假设有一个重写基础(开头没有/)和新路径在开始时添加一个/。您还忘记在重定向参数
的开头添加/RewriteEngine on
RewriteBase /
RewriteRule ^login\.html-r-(.*)$ index.php?pid=login&redirect=/$1 [L,B]
答案 1 :(得分:0)
这是一个快速回答,很可能是错误的,但是:
RewriteRule ^/login\.html\-r\-(.*)$ /index.php?pid=login&redirect=$1 [L]
我认为正则表达式对“。”感到很生气。和“ - ”因为它们很特别...... 也许在开头的正斜杠可能会有所帮助,也许不会,有没有
尝试此外,我会检查标志(在[]的末尾)以确保它们是正确的