2014-03-07 72 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"); 
?>