繁体   English   中英

htaccess:用索引参数重写无法正常工作

[英]htaccess: rewriting with index parameter doesn't work properly

好吧,所以我现在真的很挣扎,我已经尝试了一切,阅读了文章和教程,但是我仍然不知道为什么这不起作用。

我有一个index.php文件:

echo "some test";
if(isset($para)) {
    include $para . '.php';
} else {
    echo "there's no parameter";
}

因此,如果用户使用参数“ home”( http://mypage.com/test/index.php?para=home )查看页面,那么他将获得正确的页面。 那行得通。

.htaccess

DirectoryIndex index.php
RewriteEngine on
RewriteCond %{HTTP_HOST} ^mypage.com$ [NC]
RewriteRule ^(.*)$ http://mypage.com/test/$1 [R=301,L]
RewriteBase /test/
RewriteRule ^([a-z]+)$ index.php?para=$1

但是,当我尝试使用重写的链接( http://mypage.com/test/home )进行导航时,浏览器仅输出包含的文件,而它完全忽略index.php及其内容。

我的htaccess文件有问题吗? 还是我需要更改某些服务器配置? 因为我在不同的Web服务器上有不同的htaccess文件,所以它可以正常工作。 但这在我现在正在使用的Web服务器上不起作用(遗憾的是,我只能访问htdocs文件夹)。

编辑:刚刚检查了phpinfo,该页面在apache2上的PHP 5.3.28上运行。

解决了!

问题解决了。 添加“选项-Multiviews”解决了该问题。

这里的提示是:

浏览器仅输出包含的文件,它完全忽略index.php及其内容。

尝试在要使用mod_rewrite进行重新映射的上下文中以及在脚本中禁用mod_negotiation(选项-Multiviews)。

mod_negotiation是“其他”重写似乎正在您的资源上发生的最常见原因。

暂无
暂无

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

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