.htaccess清理URL和相对路径

时间:2011-12-13 00:19:43

标签: .htaccess

我的.htaccess中有以下内容:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)$ /index.php?type=cat&id=$1 [QSA,L]
RewriteRule ^page/([^/]+)$ /index.php?type=page&name=$1

这似乎工作得很好但是在第二种情况下(Page),index.php中的图片和css文件的相对路径会被破坏。不工作。在第二种情况下,所有图像都指向页面/图像/而不是图像/

除了硬编码图像的实际路径外,还有其他方法可以解决这个问题吗?

图片,css,js文件夹位于根目录中。这就是root的样子

.htaccess
index.php
images/
css/
js/

1 个答案:

答案 0 :(得分:6)

RewriteCond指令仅适用于直接跟随它们的规则。请尝试以下

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)$ /index.php?type=cat&id=$1 [QSA,L]

RewriteCond %{REQUEST_URI} !\.(css|js|jpe?g|gif|png)$ [NC]
RewriteRule ^page/([^/]+)$ /index.php?type=page&name=$1 [L]

#rewrite requests for page/images to images
RewriteCond %{REQUEST_URI} ^/page(/images/.+)$ [NC]
RewriteRule . %1 [L]

EDIT。 修改为将页面/图像重写为图像