XAMPP Mod_Rewrite 和 XAMPP Mod_Rewrite 动态CSS

发布于 2024-07-29 05:59:41 字数 814 浏览 4 评论 0 原文

我在本地计算机 (mac) 上运行 Apache,并在 XAMPP 的 httpd.conf 文件中启用了 Mod_Rewite 并设置了 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 文件中执行此操作。

I'm running Apache on my local computer (mac) with Mod_Rewite enabled and Allowoveride All set in XAMPP's httpd.conf file.

These are my rules, snippet of httpd.conf file -

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>

In my index.php file I have -

<link rel="stylesheet" type="text/css" href="setup/css/userlayout.css?u=1" />

And in my userlayout.php file is -

<?php
    header('Content-type: text/css');
    echo "#test{background-color:#000;}";
?>

Thats everything but the rules don't do anything. I'm not sure if I'm putting the rules in the right place and I understand that you can do this in a httpd.conf file and not the .htaccess file.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

冰雪梦之恋 2024-08-05 05:59:41

RewriteRule ^/setup/css/userlayout.css$ /setup/css/userlayout.php

您可以查看更多关于RewriteRule 此处

RewriteRule ^/setup/css/userlayout.css$ /setup/css/userlayout.php

You can see more about RewriteRule here.

清浅ˋ旧时光 2024-08-05 05:59:41

我明白问题出在哪里了。 XAMPP 设置需要“Options +FollowSymLinks”行才能使 mod_rewrite 正常工作。 此外,它必须放置在目录标记内,而不是放置在目录标记之外,因为重写规则适用于每个目录,这就是我在“RewriteBase /”指令上收到错误的原因。

因此完整的代码是:

<IfModule mod_rewrite.c>
    Options +FollowSymLinks 
    RewriteEngine on
    RewriteBase /root
    RewriteRule ^setup/css/userlayout\.css$ setup/css/userlayout\.php
</IfModule>

I figured out what the problem was. XAMPP setup requires the line "Options +FollowSymLinks" for mod_rewrite to work. Also this has to be placed within the directory tag not outside of it as rewrite rules work per directory which is why i was receiving the error on "RewriteBase /" directive.

Thus the full code is:

<IfModule mod_rewrite.c>
    Options +FollowSymLinks 
    RewriteEngine on
    RewriteBase /root
    RewriteRule ^setup/css/userlayout\.css$ setup/css/userlayout\.php
</IfModule>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文