这是我的.htaccess文件,但它无效。没有重定向任何URL。帮助我。
RewriteEngine on
RewriteRule ^home index.php
RewriteRule ^contactus index.php?file=c-contactus
RewriteRule ^course_registration index.php?file=c-course_registration
RewriteRule ^ncplhpage index.php?file=c-ncplhpage
RewriteRule ^scplhpage index.php?file=c-scplhpage
RewriteRule ^corporatetra index.php?file=c-corporatetra
答案 0 :(得分:0)
您可能需要设置RewriteBase。
但是,我怀疑问题是在所有情况下缺少a / before index.php,即
RewriteEngine on
RewriteRule ^home /index.php
作为一个侧面,您是否考虑将指令组合成单个指令,如:
RewriteRule ^(home|contactus|course_registration|ncplhpage|scplhpage|corporatetra)$ /index.php?file=c-$1
?您可以更进一步,将名称检查传递到index.php文件本身,即。
RewriteRule ^([_a-z]+)$ /index.php?file=c-$1
请记住,index.php应该检查请求的$ _GET ['file']是否有效。仅仅因为你有像/ contactus这样的公共网址并不意味着有人仍然无法直接输入/index.php?file=c-contactus(试试吧!)。这意味着他们可以输入/index.php?file=c-../../../../etc/passwd。因此,请确保您的index.php也进行了一些健全性检查。这对于安全性来说都是好的,但也意味着您可以避免将URL硬编码到.htaccess文件中。