2014-07-03 62 views
0

因此,在我的本地开发服务器上使用新的apache版本时,此功能完美无瑕。我搬到它交给一个活的服务器,以下规格:htaccess不能正确重定向

  • 的CentOS 6.2 LAMP(64)
  • PHP版本5.4.30
  • 的Apache/2.2.15

的问题

从我能告诉的大部分PHP函数都因此而中断 - 页面显示不正确,内容无法加载。

然而,直接规则应该重定向到的index.php?p=xxx的变体,而是它保持为mydomain.com/index.html

然而内容并实际显示(部分地)。因此,采取远

编辑的httpd.conf

步骤 - specfically <Directory "/var/www/html">,改变AllowOverride NoneAllowOverride All

我这样做之前,它不会显示在页面上的任何内容,这样做后,它的显示内容但网址没有正确重定向。

的.htaccess

Options +FollowSymLinks 
RewriteEngine on 

RewriteRule main.html$ index.php 
RewriteRule login.html$ index.php?p=login 
RewriteRule logout.html$ index.php?logout=true 

RewriteRule add-user.html$ index.php?p=add_user 
RewriteRule users-list.html$ index.php?p=users_list 
RewriteRule users-list-([0-9]+).html$ index.php?p=users_list&page=$1 
RewriteRule users-list-delete-([0-9]+).html$ index.php?p=users_list&delete=$1 
RewriteRule edit-user-([0-9]+).html$ index.php?p=profile&id=$1 
RewriteRule profile.html$ index.php?p=profile 
RewriteRule sites-list.html$ index.php?p=sites_list 
RewriteRule sites-list-([0-9]+).html$ index.php?p=sites_list&page=$1 
RewriteRule sites-list-delete-([0-9]+).html$ index.php?p=sites_list&delete=$1 
RewriteRule sites.html$ index.php?p=sites 
RewriteRule edit-site-([0-9]+).html$ index.php?p=sites&id=$1 
RewriteRule share-([0-9]+).html$ index.php?p=share&id=$1 
RewriteRule share-([0-9]+)-delete-([0-9]+).html$ index.php?p=share&id=$1&del_id=$2 
RewriteRule statistics.html$ index.php?p=home 
RewriteRule configuration.html$ index.php?p=config 
RewriteRule (.*)-site-([0-9]+).html$ index.php?p=site_inner&id=$2 

编辑

我加[R=301,L]到每一行的结束,现在如果你需要一个规则,以阻止重定向到

mydomain.com/var/www/html/index.php?logout=true 

回答

0

在那里,在最后添加一个[L]来停止检查规则。否则,重写将继续进行直到.htacecss结尾处.htacecss

+0

我在每行的末尾添加了[L], - 启动了一个巨大的重定向循环。 - 然后我将它添加到最后一行的末尾,没有改变。 –

+0

另请参阅我的编辑 –