htaccess 在一台服务器上工作正常并在另一台服务器上导致重定向循环
htaccess working fine on one server and causing redirect loop on other
我有 htaccess 文件(下面的代码),在域名更改的两台服务器上使用相同的文件。它在一个上运行良好,但在另一个上出现重定向循环问题。唯一的区别是,在一台服务器上我使用的是域名,而在另一台服务器上我使用的是专用 IP 地址
代码:
工作代码:::
RewriteEngine on
# Use PHP5 Single php.ini as default
AddHandler application/x-httpd-php5s .php
# For security reasons, Option followsymlinks cannot be overridden.
#Options +FollowSymLinks
Options +SymLinksIfOwnerMatch
##below 7 lines used in live server
RewriteBase /
RewriteCond %{HTTP_HOST} ^example\.com
RewriteRule ^(.*)$ http://www.example.com/ [R=permanent,L]
RewriteRule ^admin/$ admin/index.php
RewriteRule ^$ home/ [R]
RewriteRule ^home/$ page/index.php [L]
RewriteRule ^blog/$ blog/index.php [L]
RewriteRule ^forms/$ site-forms/index.php [L]
RewriteRule ^media/xmlfeeds/$ page/index.php
RewriteRule ^([a-z]+)(\/?)$ page/index.php [NC,QSA,L]
代码无效:::
RewriteEngine on
# Use PHP5 Single php.ini as default
AddHandler application/x-httpd-php5s .php
# For security reasons, Option followsymlinks cannot be overridden.
#Options +FollowSymLinks
Options +SymLinksIfOwnerMatch
##below 7 lines used in live server
RewriteBase /
RewriteCond %{HTTP_HOST} ^108\.175\.155\.54
RewriteRule ^(.*)$ http://108.175.155.54/ [R=permanent,L]
RewriteRule ^admin/$ admin/index.php
RewriteRule ^$ home/ [R]
RewriteRule ^home/$ page/index.php [L]
RewriteRule ^blog/$ blog/index.php [L]
RewriteRule ^forms/$ site-forms/index.php [L]
RewriteRule ^media/xmlfeeds/$ page/index.php
RewriteRule ^([a-z]+)(\/?)$ page/index.php [NC,QSA,L]
谢谢。
循环是由以下两行引起的:
RewriteCond %{HTTP_HOST} ^108\.175\.155\.54
RewriteRule ^(.*)$ http://108.175.155.54/ [R=permanent,L]
这些说,"If the host is 108.175.155.54 then redirect to 108.175.155.54."
所以在实时服务器上注释掉这些行。当您有域名时,您可以取消注释并改用域名。
我有 htaccess 文件(下面的代码),在域名更改的两台服务器上使用相同的文件。它在一个上运行良好,但在另一个上出现重定向循环问题。唯一的区别是,在一台服务器上我使用的是域名,而在另一台服务器上我使用的是专用 IP 地址
代码:
工作代码:::
RewriteEngine on
# Use PHP5 Single php.ini as default
AddHandler application/x-httpd-php5s .php
# For security reasons, Option followsymlinks cannot be overridden.
#Options +FollowSymLinks
Options +SymLinksIfOwnerMatch
##below 7 lines used in live server
RewriteBase /
RewriteCond %{HTTP_HOST} ^example\.com
RewriteRule ^(.*)$ http://www.example.com/ [R=permanent,L]
RewriteRule ^admin/$ admin/index.php
RewriteRule ^$ home/ [R]
RewriteRule ^home/$ page/index.php [L]
RewriteRule ^blog/$ blog/index.php [L]
RewriteRule ^forms/$ site-forms/index.php [L]
RewriteRule ^media/xmlfeeds/$ page/index.php
RewriteRule ^([a-z]+)(\/?)$ page/index.php [NC,QSA,L]
代码无效:::
RewriteEngine on
# Use PHP5 Single php.ini as default
AddHandler application/x-httpd-php5s .php
# For security reasons, Option followsymlinks cannot be overridden.
#Options +FollowSymLinks
Options +SymLinksIfOwnerMatch
##below 7 lines used in live server
RewriteBase /
RewriteCond %{HTTP_HOST} ^108\.175\.155\.54
RewriteRule ^(.*)$ http://108.175.155.54/ [R=permanent,L]
RewriteRule ^admin/$ admin/index.php
RewriteRule ^$ home/ [R]
RewriteRule ^home/$ page/index.php [L]
RewriteRule ^blog/$ blog/index.php [L]
RewriteRule ^forms/$ site-forms/index.php [L]
RewriteRule ^media/xmlfeeds/$ page/index.php
RewriteRule ^([a-z]+)(\/?)$ page/index.php [NC,QSA,L]
谢谢。
循环是由以下两行引起的:
RewriteCond %{HTTP_HOST} ^108\.175\.155\.54
RewriteRule ^(.*)$ http://108.175.155.54/ [R=permanent,L]
这些说,"If the host is 108.175.155.54 then redirect to 108.175.155.54."
所以在实时服务器上注释掉这些行。当您有域名时,您可以取消注释并改用域名。