2014-03-07 36 views
0

我想考出mod_rewrite的含义: 我有两个文件:level1.phpwarpzone.phpApache的PHP的mod_rewrite不工作

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

RewriteEngine On 
RewriteRule ^warp-zone.php$ level-1.php 

然而,当我去warpzone.php,什么都不会发生:/(网址不会改变)

任何建议?我真的不知道我做错了什么。

+0

已在Apache启用改写模式,使用命令a2enmod重写和重新启动Apache的 –

+0

我接着说:apache'to你的丝毫不差和标签,'mod_rewrite'是一个Apache模块,与PHP无关。 – ojovirtual

+0

问题出在Apache服务器配置上。它是否启用了“mod_rewrite”?你使用'VirtualHost'吗?您的主机/文件夹是否允许您在'.htaccess'文件中使用'allow'指令?你可以管理服务器吗?很多问题。 – ojovirtual

回答

-3
  • 检查warpzone.php或warp-zone.php是否是正确的文件名,你在你的例子中混合它们。
  • 察看Apache的error.log文件,如果mod_rewrite的是可用的,如果没有则启用它(这是可以做到要么“的LoadModule ...”或者它是由你的Linux发行包)
  • 检查Apache的错误。日志如果你被允许使用mod_rewrite,如果不考虑全球配置文件设置有“AllowOverride全部” httpd.conf文件/ apache2.conf
  • 变化重写规则“重写规则^经zone.php $级1.PHP [L]“发出http重定向;没有L标志,是在网络服务器内部处理的;看到https://httpd.apache.org/docs/2.4/rewrite/flags.html所有标志

问候

0

首先,你在你的.htaccess文件在PHP文件名破折号,而你的文件没有他们。

重写条件 - 这改变了内容为新的,但是网址保持,因为它是:

RewriteEngine On 
RewriteRule ^warpzone\.php$ level1.php [L] 

重定向条件 - 这改变内容和URL为新的:

RewriteEngine On 
RewriteRule ^warpzone\.php$ /level1.php [R] 

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

Redirect 301 /warpzone.php /level1.php 

如果它不工作K代表你,你可以在你warpzone.php文件的顶部使用页眉()方法:

<?php 
header("Location: " . $_SERVER['SERVER_NAME'] . "/level1.php"); 
?>