重写规则仅适用于 URL 中的第一个目录



我不确定如何在不重定向所有.css和.js文件请求的情况下表达此重写规则。

我需要

domain.com/randomfolder/

转到我的域索引(即 domain.com/index.php)请求的任何文件夹,但保持URL不变。

这似乎很容易,但我似乎无法指定我只希望目录的第一个实例重定向。

例如:

重写规则 ^(.*)$ 索引.php

可以重定向,但是当我的索引.php调用/css/main 时.css它会返回索引.php。

有没有办法说 domain.com/subdirectory/ 应该重定向,domain.com/subdirectory/file.css 不应该?

我可以只排除/css/和/js/目录,但我不知道怎么做。

RewriteRule ^([^/]+)/?$ /index.php?folder=$1 [L]

这会将www.example.com/subdirectory/重定向到www.example.com/index.php?folder=subdirectory,而不会更改访问者看到的 URL。它不会重定向对子目录中任何特定文件的请求,也不会重定向对子目录中子目录的请求。

URL Requested:                Redirect:
--------------------------------------------------------------------
example.com/css               example.com/index.php?folder=css
example.com/css/              example.com/index.php?folder=css
example.com/css/main.css      example.com/css/main.css (no redirect)
example.com/css/js/           example.com/css/js/      (no redirect)

这应该适合您:

<Files ~ ".(css|js)$">
    RewriteRule ^subdirectory(.*)$ index.php
</Files>

相关内容

最新更新