正如标题所说,我需要一个非常复杂的网址应用重写机制作为.htaccess规则。 我现在搜索了很多,并尝试了数百种不同的重写规则。
所以,基本上这就是我所需要的:
用户访问: http://www.site.com/product.php?id=12
服务器应重定向到: http://site.com/product/12
有一点需要提及:
并非所有页面都附加了ID
所以我也有: http://www.site.com/some/page.php
然后应重定向到: http://site.com/some/page
或从 http://site.com/anotherone.php 到 http://site.com/anotherone
非常感谢您的帮助,并提前感谢您的帮助!
答案 0 :(得分:0)
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)\.php$ http://%1/$1 [R=301,L]
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)\.php\?id=([0-9]+)$ http://%1/$1/$2 [R=301,L]
答案 1 :(得分:0)
我想,你以前有这个mod_rewrite规则是活跃的:
用户转到http://site.com/product/12并在浏览器中显示此网址,并且仅在内部,服务器提供http://www.site.com/product.php?id=12
放置第一个RewriteCond并规则:
RewriteCond %{ENV:REDIRECT_STATUS} !200
RewriteRule ^(\w+)\.php\?id=(\d*)$ /$1/$2 [R=301]
添加另一个以.php结尾时删除.php
RewriteCond %{ENV:REDIRECT_STATUS} !200
RewriteRule ^(\w+)\.php$ /$1 [R=301]