我要求的东西真的很简单。我想从中得到:
http://test.com/index.php?articles=mynewarticle&id=5
到此:
http://test.com/mynewarticle.html
我不明白为什么,但是以下.htaccess没有完成这项工作:
RewriteEngine On
RewriteRule ^([^/]*)\.html$ /index.php?articles=$1&id=5 [L]
当我输入
时http://test.com/index.php?articles=mynewarticle&id=5
我得到了
http://test.com/index.php?articles=mynewarticle&id=5
不确定是否在Apache中修改了某些内容以禁用此选项的方式,我不知道在哪里检查这个。提前感谢您提供的任何帮助。
答案 0 :(得分:1)
您需要外部和内部RewriteRules的组合将orignal网址转换为SEO友好格式
RewriteEngine on
#redirect "/index.php?articles=foobar&id=123" to "/foobar.html"
RewriteCond %{THE_REQUEST} /index\.php\?articles=([^&]+)&id=.+ [NC]
RewriteRule ^ /%1.html [NE,L,R]
#rewrite "/foobar.html" to "/index.php?articles=foobar&id=5
RewriteRule ^([^/]*)\.html$ /index.php?articles=$1&id=5 [L]