早上好。
我目前在.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重写和维护目录结构的正确方法是什么?
谢谢,我已经搜索过以前的问题,但找不到合适的答案。
答案 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