Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.htaccess htaccess中的ModRewrite将我发送到完整路径_.htaccess_Mod Rewrite - Fatal编程技术网

.htaccess htaccess中的ModRewrite将我发送到完整路径

.htaccess htaccess中的ModRewrite将我发送到完整路径,.htaccess,mod-rewrite,.htaccess,Mod Rewrite,我有两条规则: RewriteCond %{HTTP_USER_AGENT} iPhone [NC] RewriteRule ^categories$ home.php?categories=1[L,NC,PT,R=301] RewriteRule ^featured$ home.php?featurez=1 [L,NC,PT,R=301] 问题是这些分类是有效的,而特写是无效的。 作品: 不起作用: http://apps.com/iphone/featured 第二条不起作用的规则把我

我有两条规则:

RewriteCond %{HTTP_USER_AGENT} iPhone [NC]
RewriteRule ^categories$ home.php?categories=1[L,NC,PT,R=301]
RewriteRule ^featured$ home.php?featurez=1 [L,NC,PT,R=301]
问题是这些分类是有效的,而特写是无效的。 作品:

不起作用:

 http://apps.com/iphone/featured
第二条不起作用的规则把我送到这里

 http://apps.com/var/www/vhosts/apps.com/httpdocs/iphone/home.php?featurez=1
它似乎向我发送了我的目录根的根,而整个东西的前缀是我的站点根..为什么

这怎么可能呢

  • 重写条件仅适用于紧跟其后的规则,因此您的条件根本不适用于“特色”规则。你必须复制它
  • Apache试图猜测规则的目标是URL路径还是文件路径,但猜测不正确。您可以尝试通过包含重写基或使目标成为绝对URL路径来修复它
  • 我已经回答了这个问题,使用这些解决方案中的任何一个都会修复重定向中出现的文件路径

    RewriteBase /iphone/
    RewriteCond %{HTTP_USER_AGENT} iPhone [NC]
    RewriteRule ^categories$ home.php?categories=1[L,NC,PT,R=301]
    RewriteCond %{HTTP_USER_AGENT} iPhone [NC]
    RewriteRule ^featured$ home.php?featurez=1 [L,NC,PT,R=301]
    


    你们为什么不开始看日志呢?mod_rewrite提供了两个命令:
    RewriteLog
    RewritelogLevel
    ,将日志级别设置为7,然后查看它如何解释在发出请求时重写引擎内部发生的情况。这本手册非常好,我建议你阅读这本手册:我知道调试的方法。。但是这没用。。我能看到上面它在做什么。。它在重定向的中间停止。我还没有在我的服务器上访问apache您还没有在自己的系统上访问服务器吗?但是你说你可以评估日志?奇怪。。。“中间停”到底是什么意思?请发布重写日志文件的摘录。请看上面。。你怎么解释呢,我有两条规则,它们的模式相似。。一个可行,另一个给我整个目录模式,前缀是站点根。日志应该告诉我的是它如何评估“特色”。这帮不了什么忙。。它甚至不应该进入服务器目录的根目录。。为什么会这样?顺便说一句。。你发给我的链接arkascha..没有任何解释debuggin@DmitryMakovetskiydhtaccess文件是否在/iphone/目录中?或者iphone目录中的文档根目录。。我尝试应用了许多解决方案。。我还阅读了如何调试规则。。。并记录mod重写。。这让我困惑:apps.com/var/www/vhosts/apps.com/httpdocs/iphone/home.php?featurez=1一部分是我的网站根目录,另一部分是我的完整目录。为什么会发生这种情况。为什么会有这样的混合。。apache似乎没有完成重写过程导致愚蠢重定向的原因是:R=301。。它把一切都搞砸了
    RewriteBase /iphone/
    RewriteCond %{HTTP_USER_AGENT} iPhone [NC]
    RewriteRule ^categories$ home.php?categories=1[L,NC,PT,R=301]
    RewriteCond %{HTTP_USER_AGENT} iPhone [NC]
    RewriteRule ^featured$ home.php?featurez=1 [L,NC,PT,R=301]
    
    RewriteCond %{HTTP_USER_AGENT} iPhone [NC]
    RewriteRule ^categories$ /iphone/home.php?categories=1[L,NC,PT,R=301]
    RewriteCond %{HTTP_USER_AGENT} iPhone [NC]
    RewriteRule ^featured$ /iphone/home.php?featurez=1 [L,NC,PT,R=301]