.htaccess mod_rewrite 正在阻止某些文件的服务

发布于 2024-08-24 13:32:26 字数 665 浏览 3 评论 0原文

我成功地使用 mod_rewrite 使站点按我的意愿显示...但是,我已将“mock-up”文件夹迁移到根目录,并且在为站点实施这些规则时,某些文件未在其中提供^pdfs 文件夹:(

RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^ - [L]

旧目录)

RewriteRule ^redesign_03012010/mock-up/([^/]+)/([^/]+)$ /redesign_03012010/mock-up/index.php?page=$1&section=$2 [PT]
RewriteRule ^redesign_03012010/mock-up/([^/]+)$ /redesign_03012010/mock-up/index.php?page=$1 [PT,L]

(新目录)

RewriteRule ^([^/]+)/([^/]+)$ /index.php?test=1&page=$1&section=$2 [PT]
RewriteRule ^([^/]+)$ /index.php?test=1&page=$1 [PT,L]

... ^pdfs(又名 /pdfs/)不提供文件...有什么建议吗?

i have a successful use of mod_rewrite to make a site display as i wish... however, i have migrated the 'mock-up' folder to the root directory and in implementing these rules for the site, some files are not being served in the ^pdfs folder:

RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^ - [L]

(old directory)

RewriteRule ^redesign_03012010/mock-up/([^/]+)/([^/]+)$ /redesign_03012010/mock-up/index.php?page=$1§ion=$2 [PT]
RewriteRule ^redesign_03012010/mock-up/([^/]+)$ /redesign_03012010/mock-up/index.php?page=$1 [PT,L]

(new directory)

RewriteRule ^([^/]+)/([^/]+)$ /index.php?test=1&page=$1§ion=$2 [PT]
RewriteRule ^([^/]+)$ /index.php?test=1&page=$1 [PT,L]

... ^pdfs (aka /pdfs/) is not serving the files... any suggestions?

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

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

发布评论

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

评论(1

╄→承喏 2024-08-31 13:32:26

[L] 标志要求 mod_rewrite 停止处理当前的规则集,而不是整个 .htaccess 文件,因此以下行不会执行您需要的操作:

RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^ - [L]

您需要从处理中排除现有文件与mod_rewrite。尝试使用这个:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/([^/]+)$ /index.php?test=1&page=$1§ion=$2 [PT]
RewriteRule ^([^/]+)$ /index.php?test=1&page=$1 [PT,L]

[L] flag asks mod_rewrite to stop processing the current set of rules, not the entire .htaccess file, so the following lines don't do what you need:

RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^ - [L]

You need to exclude existing files from being processed with mod_rewrite. Try using this:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/([^/]+)$ /index.php?test=1&page=$1§ion=$2 [PT]
RewriteRule ^([^/]+)$ /index.php?test=1&page=$1 [PT,L]
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文