Apache 使用.htaccess
我刚开始学习如何写htaccess。 我从中获得了以下代码,它将所有内容重定向到index.php文件Apache 使用.htaccess,apache,.htaccess,Apache,.htaccess,我刚开始学习如何写htaccess。 我从中获得了以下代码,它将所有内容重定向到index.php文件 <IfModule mod_rewrite.c> RewriteEngine on RewriteRule ^$ public/ [L] RewriteRule (.*) public/ [L] </IfModule> 那么这里的问题是什么呢?这是对第一个问题的回答,对于第二个问题,您应该向我们提供更多信息(如/v
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^$ public/ [L]
RewriteRule (.*) public/ [L]
</IfModule>
那么这里的问题是什么呢?这是对第一个问题的回答,对于第二个问题,您应该向我们提供更多信息(如
/var/log/apache2/error.log中的日志条目)
^
匹配字符串的开头
$
匹配字符串的结尾
^$
匹配空字符串
匹配任何字符
*
允许0到前面匹配的任意数量的发生
(
和)
标记一个以后可以引用的组
(.*)
将匹配任意数量的字符我认为您处于重写循环中,就像:
您可以将abc.com/anything重写为abc.com/public,也可以将/public重写为/public。
也许您应该指定必须重写的url。(限制您的请求)如下所示:
RewriteEngine on
RewriteRule ^$ public/ [NC,L]
RewriteRule ^index.php(.*)$ public/$1 [NC,L]
将index.php?请求重写为public/?请求不要用不相关的标记污染标记,如“php”或“MVC”public是目录。L表示如果此重写规则捕获请求,则这是htaccess运行的最后一行,因此bail out^$表示空字符串。它的计算结果将为./public/,因为它不是在寻找文件。另外,在访问URL时,使用Fiddler来观察标题的变化也是值得的。重定向循环随着日期变得清晰。[NC,L]表示该规则不区分大小写,并且这些条件匹配的最后一条规则非常有用…因此“.”表示所有字符,包括特殊字符、/…等?最后,我得到了以下关于.htaccess的教程
RewriteEngine on
RewriteRule ^$ public/ [NC,L]
RewriteRule ^index.php(.*)$ public/$1 [NC,L]