.htaccess - 这是 RewriteRule 冗余吗?
问题描述
我在文件夹中找到了一个.htaccess
文件/htdocs/wordpress/
。
urlwww.example.com
指向/htdocs
目录。
Wordpress 被调用www.example.com/wordpress
这是的内容.htaccess
:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /wordpress/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /wordpress/index.php [L]
</IfModule>
我在https://stackoverflow.com/a/27913187/2311074中发现
像这样使用 RewriteBase ...
RewriteBase /folder/ RewriteRule a\.html b.html
本质上与...相同
RewriteRule a\.html /folder/b.html
但是当 .htaccess 文件在 /folder/ 中时,它也指向同一个目标:
RewriteRule a\.html b.html
所以我想它不需要?此外,我看不到什么
RewriteRule ^index\.php$ - [L]
是在做。它重定向到哪里?无论如何,最后一切都会重定向到
RewriteRule . /wordpress/index.php [L]
所以第一个 RewriteRule 无论如何都会被重写,对吧?
上面的.htaccess
文件是否等同于:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /wordpress/index.php [L]
</IfModule>
解决方案
如果我是正确的,此规则将阻止此处直接访问 index.php,当用户尝试直接访问 index.php 时,“-”将执行 403 禁止访问。
RewriteRule ^index\.php$ - [L]
推荐阅读
- shell - 读取输出文件路径(jenkins + gradle)
- python - 注销后如何使用 OAuth 凭据登录用户?
- swift - 在数据库中存储 CryptoKit 公钥
- node.js - Mongoose find().populate().sort() 在版本 5.9.9 中不起作用
- javascript - 如何通过 xpath 选择一个元素并用 puppeteer 点击它?
- amazon-web-services - 首次在 AWS 中运行代码缓慢
- c# - 如何更新 Blazor 视图?
- python - 想要从单个 Dockerfile 运行 python 脚本和 Flask api
- orbeon - Orbeon 处理器,并行或顺序处理
- javascript - 如何以有效、干燥的方式使用 Svelte.js 的 Smelte 材料设计库?