首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Apache mod_rewrite不工作

问Apache mod_rewrite不工作
EN

Stack Overflow用户
提问于 2014-03-07 08:55:59
回答 2查看 297关注 0票数 0

我正在尝试测试mod_rewrite,意思是:我有两个文件:files 1.php和warpzone.php。

在我的.htaccess中,我有以下代码:

代码语言:javascript
复制
RewriteEngine On
RewriteRule ^warp-zone.php$ level-1.php

然而,当我去warpzone.php时,什么都没有发生:/ ( url没有变化)

有什么建议吗?我真的不知道我做错了什么。

EN

回答 2

Stack Overflow用户

发布于 2014-04-01 11:23:24

首先,您的.htaccess文件中有php文件名中的破折号,而您的文件没有它们。

重写条件--这会将内容更改为新内容,但URL将保持原样:

代码语言:javascript
复制
RewriteEngine On
RewriteRule    ^warpzone\.php$  level1.php  [L]

重定向条件-这将内容和URL都更改为新条件:

代码语言:javascript
复制
RewriteEngine On
RewriteRule    ^warpzone\.php$  /level1.php  [R]

您还可以使用重定向条件而不是mod_rewrite:

代码语言:javascript
复制
Redirect 301 /warpzone.php /level1.php

如果它不适用于您,可以在warpzone.php文件的顶部使用headers()方法:

代码语言:javascript
复制
<?php 
header("Location: " . $_SERVER['SERVER_NAME'] . "/level1.php");
?>
票数 0
EN

Stack Overflow用户

发布于 2014-03-07 09:47:26

  • 检查warpzone.php或warp-zone.php是否是正确的文件名,在示例中将它们混合在一起。
  • 检查apache error.log文件是否可用,如果没有,则启用mod_rewrite (可以使用"LoadModule .“来完成此操作)。或者它是由Linux发行版包装的)
  • 如果允许使用error.log,请检查apache mod_rewrite,如果没有考虑在全局配置文件httpd.conf/apache2.conf中设置"AllowOverride All“
  • 将重写规则更改为"RewriteRule ^warp-zone.php$ level-1.php L“以发出http重定向;如果没有L标志,则在web服务器内部处理;所有标志请参见https://httpd.apache.org/docs/2.4/rewrite/flags.html。

问候

票数 -3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22245529

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档