URL重写apache

URL重写apache,apache,.htaccess,url-rewriting,rewrite,Apache,.htaccess,Url Rewriting,Rewrite,我想重写我的网站上的两个网址,以便他们更搜索引擎友好。如何在我的.htaccess中执行此操作?第一次我尝试了这个,但出现了404个错误: RewriteRule ^research/([0-9][0-9])$ /research/$1/ [R] RewriteRule ^research/([0-9][0-9])/$ /urt.php?func=viewresearch&rid=$1 RewriteRule ^research/([0-9])$ /research/$1/ [R] R

我想重写我的网站上的两个网址,以便他们更搜索引擎友好。如何在我的
.htaccess
中执行此操作?第一次我尝试了这个,但出现了404个错误:

RewriteRule ^research/([0-9][0-9])$ /research/$1/ [R]
RewriteRule ^research/([0-9][0-9])/$ /urt.php?func=viewresearch&rid=$1 
RewriteRule ^research/([0-9])$ /research/$1/ [R]
RewriteRule ^research/([0-9])/$ /urt.php?func=viewresearch&rid=$1
我第二次尝试:

RewriteEngine on 
RewriteRule ^products/([0-9][0-9])$ /products/$1/ [R]
RewriteRule ^products/([0-9][0-9])/$ /viewad.php?adid=$1 

例如,当我导航到时,它会重定向,但看起来没有加载任何外部文件(Javascript、CSS等)。为什么会发生这种情况?

您可能使用的是相对URL,可能只是相对URL路径。在这种情况下,如果未另行指定基本URL,则从作为当前URL的基本URL解析相对URL

因此,当在基本URL路径
/products/12/
上使用相对URL路径引用(如
css/style.css
)时,它被解析为
/products/12/css/style.css
,而不是
/css/style.css
。因为这里的
/products/12/
是基本URL路径,而不是
/urt.php
。URL路径不是文件系统路径!客户机只知道URL,其他什么都不知道


要解决这个问题,你有几个选择。最简单的方法是使用独立于实际基本URL路径的绝对URL路径
/css/style.css
。或者使用更改基本URL(请注意,这会影响每个相对URL)。或者您调整相对URL路径以适合实际的基本URL路径,因此在使用
/products/12/
的情况下使用
./../css/style.css

顺便说一句,我希望重写仅在func=viewsearch时有效。。。这可能吗?