htaccess没有正确重定向

时间:2014-07-03 20:31:28

标签: php apache .htaccess mod-rewrite

因此,在我的本地开发服务器上使用新的apache版本,这可以完美地运行。我把它移到了一个实时服务器,规格如下:

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

问题

由于这个原因,我所知道的大部分PHP函数都破坏了 - 页面显示不正确,内容无法加载。

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

然而,内容确实显示(部分)。

到目前为止采取的步骤

编辑httpd.conf - 明确<Directory "/var/www/html">并将AllowOverride None更改为AllowOverride All

在我执行此操作之前,它不会在页面上显示任何内容,在执行此操作后显示内容但URL未正确重定向。

的.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

1 个答案:

答案 0 :(得分:0)

如果您需要停在那里的规则,请在末尾添加[L]以停止检查规则。否则,重写将持续到.htacecss结束