Mod rewrite 使用mod_rewrite将URL作为参数传递
我想重写动态URLMod rewrite 使用mod_rewrite将URL作为参数传递,mod-rewrite,Mod Rewrite,我想重写动态URL /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_rewrit
/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
感谢您的帮助您必须转义点字符,并且应该转义backreference,因为它将成为查询字符串的一部分。您还不一致,因为正则表达式模式匹配假设存在重写基(开始时没有/),新路径在中间添加了/。您还忘了在重定向参数的开头添加a/
RewriteEngine on
RewriteBase /
RewriteRule ^login\.html-r-(.*)$ index.php?pid=login&redirect=/$1 [L,B]
这是一个快速的答案,很可能是错误的,但:
RewriteRule ^/login\.html\-r\-(.*)$ /index.php?pid=login&redirect=$1 [L]
我认为regex非常喜欢“.”和“-”因为它们很特别。。。
另外,也许一开始的正斜杠会有帮助,也许不会,尝试一下有无
此外,我会检查标志(在[]的末尾),以确保它们是正确的