我只想重写来自的所有请求:
http://example.com/products/product.cfm?id=product-name
到
http://example.com/products/product-name
其次,
http://example.com/category.cfm?id=some-category&sub=sub-category
到
http://example.com/some-category/sub-category
这是我尝试过的:
Options +FollowSymLinks
RewriteEngine on
RewriteRule ^products/$1 ^products/product.cfm?id=$1 [NC]
我确信这没有意义,因为我真的不知道我在做什么。我希望有人可以告诉我我哪里出错了所以我可以效仿。
谢谢! 乔治
答案 0 :(得分:3)
http://www.addedbytes.com/for-beginners/url-rewriting-for-beginners/
我不喜欢纯粹的“链接”答案,但上面的链接对我非常有帮助:]
答案 1 :(得分:0)
使用mod_rewrite
,您可以写:
RewriteRule ^products/([\w-]+)$ /products.cfm?id=$1&%{QUERY_STRING}
这将执行您想要的翻译,同时保留原始网址中的其他参数。它不会处理类别,但我不确定你是否可以像你描述的那样同时操作它们。
答案 2 :(得分:0)
这些方面的东西:
RewriteCond %{query_string} &?id=([^&]+) [NC]
RewriteRule ^/products/product.cfm$ /products%1? [R,NC,L]
# Fragile, this assumes that params will always be in order id= then sub=
RewriteCond %{query_string} &?id=([^&]+)&sub=([^&]+) [NC]
RewriteRule ^/category.cfm?$ /%1/%2? [R,NC,L]
RewriteRule中的R标志强制进行硬重定向(访问者的位置栏将更改为新URL)。删除此标志以进行内部重定向。