我正在用PHP编写CMS,现在我正在使用主题功能。我有一个.htaccess文件:
RewriteEngine ON
RewriteRule ^([a-zA-Z][a-zA-Z0-9]*)$ index.php?m=$1
RewriteRule ^([a-zA-Z][a-zA-Z0-9]*)/(.+)$ index.php?m=$1&p=$2
如果我有要求:
/page
它必须加载名为page的类的视图函数。
如果我有要求:
/page/test
它必须使用参数'test'加载名为page的类的视图函数。 这一切都有效,
但是如果请求 NOT 以:
开头,我希望它只应用RewriteRules/THEMES/
所以我可以应用CSS样式等......
任何人都可以帮助我吗?感谢。
答案 0 :(得分:27)
在重写规则之前添加:
RewriteCond %{REQUEST_URI} !^/THEMES/
答案 1 :(得分:12)
您可以使用其他规则来停止重写过程:
RewriteRule ^THEMES/ - [L]
RewriteRule ^([a-zA-Z][a-zA-Z0-9]*)$ index.php?m=$1
RewriteRule ^([a-zA-Z][a-zA-Z0-9]*)/(.+)$ index.php?m=$1&p=$2
答案 2 :(得分:1)
做类似的事情:
RewriteRule ^THEMES - [L]
这意味着:如果请求以THEMES开头,则只需提供服务。
另一种可能的解决方案是:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
这意味着:如果请求解析为现有文件(第一行)或目录(第二行),请不要重写。
也许你应该阅读文件,写得非常好。
答案 3 :(得分:0)
如果要在使用url-rewriting时包含css / js文件,请使用该标记指定主URL。
< base href="http://www.your-web-site-adress.com" >
然后你可以轻松地包含你的css / js文件:
< script src="/blabla.js" >
它会将基础href添加为前缀。