我正在努力解决.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正确吗?
答案 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