我在本地计算机(mac)上运行Apache,启用了Mod_Rewite,并在XAMPP的httpd.conf文件中设置了Allowoveride All。
这些是我的规则,httpd.conf文件的片段 -
RewriteEngine On
RewriteRule ^/setup/css/userlayout.css /setup/css/userlayout.php
Alias /ms "/Users/web/wwwroot/ms"
<Directory "/Users/web/wwwroot/ms">
Options Indexes MultiViews
AllowOverride All
Order allow,deny
Allow from all
</Directory>
在我的index.php文件中,我有 -
<link rel="stylesheet" type="text/css" href="setup/css/userlayout.css?u=1" />
在我的userlayout.php文件中是 -
<?php
header('Content-type: text/css');
echo "#test{background-color:#000;}";
?>
这是一切,但规则不做任何事情。我不确定我是否将规则放在正确的位置,我知道你可以在httpd.conf文件而不是.htaccess文件中执行此操作。
答案 0 :(得分:1)
RewriteRule ^ / setup / css / userlayout.css $ /setup/css/userlayout.php
您可以详细了解RewriteRule here。
答案 1 :(得分:0)
我弄清楚问题是什么。 XAMPP设置需要mod_rewrite行“Options + FollowSymLinks”才能工作。此外,这必须放在不在其外的目录标记内,因为重写规则适用于每个目录,这就是我在“RewriteBase /”指令上收到错误的原因。
因此完整的代码是:
<IfModule mod_rewrite.c>
Options +FollowSymLinks
RewriteEngine on
RewriteBase /root
RewriteRule ^setup/css/userlayout\.css$ setup/css/userlayout\.php
</IfModule>