首先,我向托管公司澄清了他们已经确认已启用“允许覆盖”设置。
如果我在.htaccess文件中写入垃圾值,那么我得到“内部服务器错误”,这进一步证明.htaccess没有被跳过。
我正在尝试这样做 输入:全部/ 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和我的服务器中获得不同的行为?
答案 0 :(得分:0)
试试这个:
RewriteRule ^all/(.*)$ all.php?id=$1
答案 1 :(得分:0)
听起来您的主机已启用MultiViews
option。解决方案是让他们禁用它或可能更快的选项,只要基本名称(减去扩展名)与您的all.php
模式不匹配,就将您的PHP文件重命名为RewriteRule
以外的其他名称