Php mod_rewrite和.htaccess 404ing在子目录中
例如: 目录结构Php mod_rewrite和.htaccess 404ing在子目录中,php,apache,.htaccess,mod-rewrite,http-status-code-404,Php,Apache,.htaccess,Mod Rewrite,Http Status Code 404,例如: 目录结构 localhost/ |- test/ |- index.php |- .htaccess index.php: <?php if(isset($_GET['cmd'])){ echo "cmd is ok"; } ?> 如果用户设置:http://localhost/test/index.php?cmd=a 输出为:cmd正常 没关系 如果用户设置http://localhost/
localhost/
|- test/
|- index.php
|- .htaccess
index.php:
<?php
if(isset($_GET['cmd'])){
echo "cmd is ok";
}
?>
如果用户设置:
http://localhost/test/index.php?cmd=a
输出为:cmd正常
没关系
如果用户设置http://localhost/test/a
应该如何设置.htaccess/mod\u rewrite?
上面有代码,我只得到404 您的问题是此处的尾部正斜杠:
RewriteRule ^([^/]+) index.php?cmd=$1 [L]
RewriteRule ^([^/]*)/$ /test/index.php?cmd=$1 [L]
删除该选项或使其成为可选选项:
RewriteRule ^([^/]*)/?$ /test/index.php?cmd=$1 [L]
否则它将与仅以
结尾的url不匹配。../a
您的问题是此处的正斜杠尾随:
RewriteRule ^([^/]*)/$ /test/index.php?cmd=$1 [L]
删除该选项或使其成为可选选项:
RewriteRule ^([^/]*)/?$ /test/index.php?cmd=$1 [L]
否则它将与仅以
结尾的url不匹配。../a
我挣扎了几个小时,就是不明白。请帮帮我。如果你试着问服务器故障,你可能会得到更好的回答。我已经挣扎了好几个小时,就是不明白。请帮助我。如果您尝试在serverfault.com上询问,您可能会得到更好的响应。请明智地添加尾部斜杠选项:RewriteRule^test/(.+)/?$/test/index.php?cmd=$1[L]
@SpoonNZ-正确。在后面的斜杠后面可能还有更多的东西。我更新了我的答案。谢谢。添加尾随斜杠选项可能是明智的:RewriteRule^test/(.+)/?$/test/index.php?cmd=$1[L]
@SpoonNZ-正确。在后面的斜杠后面可能还有更多的东西。我更新了我的答案。谢谢。使用RewriteRule^([^/]*)/$/test/index.php?cmd=$1[L]
我仍然得到了404。使用RewriteRule^([^/]*)/?$/test/index.php?cmd=$1[L]
-内部服务器错误500。为什么???您必须查看错误。记录然后查找实际错误原因。如果经常运行错误,也要设置一个重写日志(困难)。您可能需要一个RewriteBase
或其他东西。使用RewriteRule^([^/]*)/$/test/index.php?cmd=$1[L]
我仍然得到404。使用RewriteRule^([^/]*)/?$/test/index.php?cmd=$1[L]
-内部服务器错误500。为什么???您必须查看错误。记录然后查找实际错误原因。如果经常运行错误,也要设置一个重写日志(困难)。您可能需要一个RewriteBase
之类的东西。