2012-08-17 201 views
1
RewriteRule page/([0-9]+)$ page.php?id=$1 

它的工作原理,但包含的链接,如CSS或JS不起作用。 page/被视为一个文件夹,因此找不到链接(例如:<link rel="stylesheet" type="text/css" media="screen" href="css/default.css" />)。Htaccess用一个变量重写网址

另一个例子:如果“id”不存在,我这样做ErrorDocument 403 /notfound.php,但你被重定向到domain.com/page/notfound.php。我能如何解决这个问题?

回答

2

试试这个:

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule page/([0-9]+)$ page.php?id=$1 

仅当请求的文件或目录不存在真的这会重定向。

的更多信息mod_rewrite here

编辑:

至于你有没有beeing发现资源问题,您必须对您在你的头节的HTML页中添加基本标签:

<base href="/"> 

更多关于的信息base tag here

+0

Tnx的答复,但没有工作我已经尝试过了。但没有找到内部链接,因为PAGE /被看作是一个文件夹 – Rihan 2012-08-17 17:53:54

+0

我在编辑新问题之前编写了我的答案,现在查看我的编辑 – Oussama 2012-08-17 18:01:02

+0

非常感谢!它现在完美运行! – Rihan 2012-08-17 19:36:09