对于我的网站,我有一个 RewriteRule,它将 URL http://www.mysite.com/work指向 work.php 文件。我还有一个名为“work”的目录,其中包含文件,例如project1.php、project2.php等...
我必须编写什么规则才能使 URL http://www.mysite.com/work知道转到 work.php 文件,但 URL http://www.mysite.com/work/project1知道我意思是进入目录“work”并显示project1.php文件?
编辑:应该指出,这就是我目前正在处理的内容:
RewriteEngine On
RewriteBase /beta/
RewriteRule ^([a-z]+)$ $1.php [L]
Run Code Online (Sandbox Code Playgroud)
还有其他建议可以提高安全性吗?(停止目录跳转等...)
尝试这个:
RewriteEngin On
RewriteBase /
RewriteRule ^work$ /work.php [QSA,L]
Run Code Online (Sandbox Code Playgroud)
这将确保http://www.mysite.com/work(没有尾部斜杠)将进入您的work.php文件。
如果您还想http://www.mysite.com/work/(带有尾部斜杠) go work.php,请将此行添加到最后一个RewriteRule.
RewriteRule ^work/$ /work [R=301,QSA,L]
Run Code Online (Sandbox Code Playgroud)
这会将其重定向到不带尾部斜杠的 URL,从而显示该work.php文件。
更新:由于您已经有了一个RewriteBase指令,因此只需将行放在RewriteRule您之后RewriteBase但之前,RewriteRule因为您使用的是包罗万象的规则,并且将匹配所有内容。