htaccess重写规则未加载网站内容

时间:2009-08-13 19:10:38

标签: apache .htaccess mod-rewrite

我正在努力解决.htaccess重写规则。 假设我有这个网址。

localhost/site/index.php

我希望将其重写为此网址

localhost/site/tutorial

我会使用这个RewriteRule

Options +FollowSymLinks
RewriteEngine on

RewriteRule ^tutorial/(.*)$ /up/index.php

页面有效,但CSS文件无法加载。

另外,如果我有这样的网址:

index.php?page=home

然后我必须通过该URL解析才能让'home'不再使用$ _GET正确吗?

3 个答案:

答案 0 :(得分:1)

只需使用CSS文件的绝对URL,或者至少使用域根目录。

http://www.mysite.com/css/myCssFile.css

/css/myCssFile.css

答案 1 :(得分:0)

Options +FollowSymLinks
RewriteEngine on

RewriteRule ^tutorial/(.*)$ /up/index.php

这将重写作为/up/index.php的教程目录中的任何内容,这意味着除非您在该位置托管CSS文件,否则它将无效。如果您的css文件位于/tutorial/css.css,则会将其重定向到/up/index.php

您必须解析%QUERYSTRING%才能根据index.php?page=home重定向

答案 2 :(得分:0)

因此您正在加载CSS文件,因为您正在更改所提供文件的位置。

因此,如果您要链接到./css/style.css => ^ / tutorial / css / style.css与/up/css/style.css

不同

如果你重写,你可以保留获取:

RewriteRule ^tutorial/(.*)?(.*)$ /up/index.php?$2