4

首先,我向我的托管公司澄清,他们已经验证允许覆盖设置已启用。

其次,如果我在 .htaccess 文件中写入垃圾值,那么我会得到“内部服务器错误”,这进一步证明 .htaccess 没有被跳过。

我正在尝试这样做 输入:all/3 输出:all.php?id=3

我在 .htaccess 文件中编写了以下内容,该文件是从教程站点复制的。

# Enable Rewriting  
RewriteEngine on  
# Rewrite user URLs  
#   Input:  user/NAME/  
#   Output: user.php?id=NAME  
RewriteRule ^all/(\w+)/?$ all.php?id=$1

all.php 文件

<?php
echo $_GET['id'];
?>

现在,如果我输入localhost/all/3,则会显示 3。

如果我输入www.mydomain.com/all/3,则页面为空白。

此外,我在 .htaccess 文件中只有上述代码,仅此而已。那么为什么我在 localhost 和我的服务器中会出现不同的行为呢?

4

2 回答 2

0

试试这个 :

RewriteRule ^all/(.*)$ all.php?id=$1
于 2013-02-01T06:18:31.650 回答
0

听起来您的主机已启用该MultiViews选项。解决方案是让他们禁用它或者可能是一个更快的选项,将您的 PHP 文件重命名为 以外的内容all.php,只要基本名称(减去扩展名)与您的RewriteRule模式不匹配。

于 2013-02-02T03:36:36.380 回答