php - 使用 mod_rewrite 重写对父目录的请求

标签 php css apache .htaccess mod-rewrite

使用 WAMP 进行一些本地 PHP 开发。将所有请求路由到 index.php,除了 对位于文档根目录之外的父目录中的样式表和图像等 Assets 的请求。目录布局如下:

C:\WAMP\www\
    ↳ mySite
        ↳ public
            ↳ .htaccess
            ↳ index.php
        ↳ assets
            ↳ style
                ↳ desktop.css

.htaccess

RewriteEngine on
RewriteBase /mySite/
RewriteCond %{REQUEST_URI} \.css$ [NC]
RewriteRule ^(.*)$ assets/$1 [L]
RewriteCond %{REQUEST_URI} !-f
RewriteCond %{REQUEST_URI} !-d
RewriteRule ^(.+)\/?$ index.php?url=$1 [L,QSA]

mySite.conf

Alias /mySite/ "C:/WAMP/www/mySite/public/"

<Directory "C:/WAMP/www/mySite/public/">
    Options Indexes FollowSymLinks MultiViews
    AllowOverride all
        Order allow,deny
    Allow from all
</Directory>

结果

localhost/mySite/ - 按预期返回 index.php

localhost/mySite/style/desktop.css 返回内部服务器错误

我错过了什么?

谢谢

最佳答案

这可能是由于循环。

试试这个代码来解决这个问题:

RewriteEngine on
RewriteBase /mySite/

RewriteRule ^((?!assets/).+?\.css)$ assets/$1 [L,NC]

RewriteCond %{REQUEST_URI} !-f
RewriteCond %{REQUEST_URI} !-d
RewriteRule ^(.+)\/?$ index.php?url=$1 [L,QSA]

关于php - 使用 mod_rewrite 重写对父目录的请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21831572/

相关文章:

html - Bootstrap 菜单没有下推内容

python - Apache + mod_wsgi + flask 应用程序 : "Unable to get bucket brigade for request" error in logs

php - 如何修复 PHP 中格式错误的 URL?

php - CakePHP 从类所属的表中获取数据

php - 使用 GD ( imagettftext() ) 和 UTF-8 字符

javascript - 仅限 Firefox 的罕见故障 : textarea shifted

php - 在为 SPA 站点提供服务之前,Apache 预取数据是否会影响性能?

php - 将递归目录列表转换为 MySQL 表

php - Laravel - 坚实的原则

html - Bootstrap - 网格未对齐