url重写目录问题(htaccess)

时间:2010-09-25 08:17:47

标签: url .htaccess mod-rewrite

早上好。

我目前在.htaccess中有这个小规则

RewriteEngine On
RewriteBase /
RewriteRule ^brochure/([0-9]+)$ /brochure.php?cat_path=$1 [L]

(我只是在这里使用数字,稍后将是类别名称。)

这完全重定向,但是当它完成时,我在目录中的所有内容现在都失败了(css,js,images,includes等)

我理解这个问题(它正在抛弃目录结构)。

将规则更改为可解决图像,CSS和JS问题。

RewriteRule ^([0-9]+)$ brochure.php?cat_path=$1 [L]

但这不是我想要的。

url重写和维护目录结构的正确方法是什么?

谢谢,我已经搜索过以前的问题,但找不到合适的答案。

2 个答案:

答案 0 :(得分:2)

您必须使用相对于webroot的绝对路径或路径,例如:

<img src="http://example.com/image.gif" alt="" />
<img src="/images/image.gif" alt="" />

如果你知道你的图像总是一个目录,这也是一个选项:

<img src="../images/image.gif" alt="" />

答案 1 :(得分:0)

虽然我诚实地推荐Lekensteyn的答案,但还有另一种解决方案。您的mod_rewrite规则基本上将/brochure.phpcat_path=123移至/brochure/123。您只需修复相对URL并设置正确的路径即可。您必须了解这些路径是由浏览器解析的,因此实际的服务器文件系统结构与它无关。

例如:css/style.css将成为../css/style.css