0
RewriteRule ^([a-zA-Z0-9]+)/$ index.php?$1=1 [L]
RewriteRule ^([a-zA-Z0-9]+)$ index.php?$1=1 [L]

#if category 
RewriteRule ^category/([a-zA-Z0-9]+)/$ index.php?results=true&lid=$1 [L,NC]
RewriteRule ^category/([a-zA-Z0-9]+)$ index.php?results=true&lid=$1 [L,NC]

第一部分工作得很好,当我在 url 中添加类别时,它会在其他参数之前写入类别,因此 css 和图像正在消失。

mywebsite.com/category/380 应该重定向到 mywebsite.com/index.php?results=true&lid=380 ,但原始 url 有图片和 css 但干净的 url 没有。

4

1 回答 1

0

这是因为相对基本 URI 已更改,并且您的 css 和图像可能是相对链接(例如<img src="image_folder/image.png">)而不是绝对链接(例如<img src="/image_folder/image.png">)。

原来的基地是/,这是index.php坐的地方。但是一旦有了/category/something,基地就变成了/category/。因此,您可以将所有链接从相对链接更改为绝对链接(通过添加前导斜杠),也可以将其添加到所有页面的标题中:

<base href="/">

如果已经/category/在 URI 前面生成了指向 css 和图像的链接,那么这听起来与您的框架相关。但是,如果没有解决方法,您可以将这些规则添加到您已经拥有的规则之上:

# if the request ends with one of these extensions
RewriteCond %{REQUEST_URI} \.(css|png|gif|jpe?g|bmp|ico|js)$ [NC]
RewriteRule ^category/(.*)$ /$1 [L]
于 2012-09-11T21:32:25.543 回答