2014-07-03 61 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

另請參閱我的編輯 –