2014-10-10 80 views
0

我的网站有两个部分使用id来唯一标识itens。如何在用户点击它们时使用mod_rewrite更改两个URL?简单的使用方法mod_rewrite

URL1: http://www.example.com/category.php?id=1

URL2: http://www.example.com/article.php?id=1

想:

URL1:http://www.example.com/category/1

URL2:http://www.example.com/article/1

下面我所取得的代码是什么我想但失去了CSS风格:

RewriteEngine On 
RewriteRule ^category/([a-z0-9]+)$ category.php?id=$1 
RewriteRule ^article/([a-z0-9]+)$ article.php?id=$1 

感谢任何帮助!

+0

包括“CATEG ory /“和”article /“部分,以便将它们区分开来。 – showdev 2014-10-10 01:25:18

+0

@showdev我已经尝试过,并没有工作 – Andre 2014-10-11 04:14:38

回答

0

为了解决这个问题,我的链接样式和js源的每个路径前加(/):

前:

<link type = "text/css" rel = "stylesheet" href = "css/style.css"> 
<script src="js/bootstrap.min.js"></script> 

<link type = "text/css" rel = "stylesheet" href = "/css/style.css"> 
<script src="/js/bootstrap.min.js"></script> 
0

可以达到这种效果这样做:

RewriteEngine On 
RewriteRule ^category/(\d+)$ category.php?id=$1 
RewriteRule ^article/(\d+)$ article.php?id=$1 
+0

我以前试过,但问题是,CSS样式消失 – Andre 2014-10-11 04:17:22

+0

这是因为你可能使用相对路径(即“css_folder/something.css”或“..” /css_folder/something.css“)。当你mod_rewrite类似的东西时,你也需要考虑你正在改变文件夹树。为了解决这个问题,只需使用 “/css_folder/something.css” 或 $ _SERVER [“DOCUMENT_ROOT”] +“/ css_folder/something.css” 或其他任何您可以执行的操作来确保根相对路径。 – Darkseal 2014-10-12 10:15:43