繁体   English   中英

.htaccess在Apache上的RewriteRule无法正常工作

[英].htaccess RewriteRule on apache not working

我已经尝试了一切。 以下.htaccess文件似乎在我的本地XAMPP服务器上运行奇妙:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule pilot/([^/]*)$ /pilot.php?name=$1
</IfModule>

但可悲的是,当我将其上传到网络主机时,它不起作用。 任何帮助或投入,将不胜感激。

编辑:我忘记添加它确实可以正确重定向到文件,但是由于某些奇怪的原因而没有捕获变量。 我也尝试过这个:

RewriteRule ^pilot/(.*)$ /pilot.php?name=$1

但这也不起作用。 我完全迷路了。 我的虚拟主机是OVH。

EDIT2:我至少能够将问题缩小一点。 我发现这样做:(请注意-而不是/)

RewriteRule ^pilot-(.*)$ pilot.php?name=$1

绝对正常。 斜杠出了点问题,但我想不出办法解决。

EDIT3:好吧,显然

RewriteRule ^字符/([[a-zA-Z _] +)$ show.php?name = $ 1 [L]

起作用但是

RewriteRule ^ pilot /([[a-zA-Z _] +)$ show.php?name = $ 1 [L]

没有。 那好吧..

尝试将其添加到您的htaccess中:

Options -MultiViews

MultiViews的作用如下:如果服务器收到对/ some / dir / foo的请求,如果/ some / dir启用了MultiViews,并且/ some / dir / foo不存在,则服务器将读取目录以查找名为foo。*的文件,并有效地伪造了一个类型图,该类型图对所有这些文件进行了命名,为它们分配了与客户端要求通过名称提供的相同的媒体类型和内容编码。 然后,它选择最符合客户要求的匹配项。 http://httpd.apache.org/docs/2.2/en/content-negotiation.html

在此之后,可以使用:

RewriteRule pilot/([^/]*)$ /pilot.php?name=$1

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM