我的代码所在的文件夹中有.htaccess文件。
# Turn rewrite engine on
RewriteEngine on
RewriteBase /
RewriteRule ^/mobile/list/$ RestController.php?view=all [NC,L]
RewriteRule ^/mobile/list/([0-9]+)/$ RestController.php?view=single&id=$1 [NC,L]按宿主提供商(https://www.hostinger.in/knowledge-base/489)添加的重写库,但如果我尝试加载url,则重写将无法工作。
Esy.es/mobile/list/
它不是重定向到jobstatuscheck.esy.es/RestController.php?view=all
发布于 2017-07-15 13:40:22
当在动态配置文件中使用时,RewriteRule在相对路径上工作,而不是在绝对路径上工作。这是因为这些文件是相对于它们在文档层次结构中的位置来解释的。在Apache重写模块的文档中清楚地指出了这一点。
这意味着您需要在模式中使用相对路径,或者使用更灵活的方法(注意附加问号.):
RewriteEngine on
RewriteBase /
RewriteRule ^/?mobile/list/?$ RestController.php?view=all [NC,L]
RewriteRule ^/?mobile/list/([0-9]+)/?$ RestController.php?view=single&id=$1 [NC,L]还有一个一般性提示:您应该总是倾向于将这样的规则放置在http服务器(虚拟)主机配置中,而不是使用动态配置文件(.htaccess样式文件)。众所周知,这些文件容易出错,很难调试,而且它们确实减慢了服务器的速度。只有当您无法控制主机配置(请阅读:真正便宜的主机服务提供商)或应用程序依赖于编写自己的重写规则(这显然是一场安全噩梦)时,它们才会被支持。
https://stackoverflow.com/questions/45118788
复制相似问题