.htaccess重写规则不起作用

时间:2017-07-15 13:33:34

标签: apache .htaccess mod-rewrite

我的.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)添加了Rewritebase但是如果我尝试加载网址,我的重写无法正常工作

jobstatuscheck.esy.es/mobile/list /

它没有重定向到jobstatuscheck.esy.es/RestController.php?view=all

1 个答案:

答案 0 :(得分:1)

在动态配置文件中使用时,$cellwidth = $pdf->GetStringWidth($string);适用于相对路径,而不是绝对路径。这是因为这些文件是相对于它们在文档层次结构中的位置进行解释的。这在Apache的重写模块documentation中有明确指出。

这意味着您需要在模式中使用相对路径或使用更灵活的方法(请注意其他问号......):

RewriteRule

一般提示:您应该始终更喜欢将此类规则放在http服务器(虚拟)主机配置中,而不是使用动态配置文件(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] 样式文件)。这些文件非常容易出错,难以调试,它们确实会降低服务器的速度。只有在您无法控制主机配置(读取:非常便宜的托管服务提供商)或者您的应用程序依赖于编写自己的重写规则(这是一个明显的安全噩梦)的情况下,它们才被支持作为最后一个选项。 )。