【发布时间】:2014-06-12 14:32:43
【问题描述】:
所以我将我的应用程序从一台主机迁移到另一台主机。大多数应用程序通过“漂亮的网址”工作,其中 /login.php 变为 /login (我通过 $_SERVER['REQUEST_URI'] 在我的 php 中访问),但是在切换主机后,我的 htaccess 代码不再起作用( chrome 给了我一个重定向循环错误)。
这是代码:
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{SERVER_PORT} ^80$
RewriteRule ^(.*)$ http://%{SERVER_NAME}%{REQUEST_URI} [L,R]
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^.*$ ./index.php
知道可能出了什么问题吗?
【问题讨论】:
-
您能解释一下
RewriteCond %{SERVER_PORT} ^80$ RewriteRule ^(.*)$ http://%{SERVER_NAME}%{REQUEST_URI} [L,R]的作用吗?对我来说它看起来完全没用...... -
@Peter
RewriteCond %{SERVER_PORT} ^80$= 查找端口 80 上的任何连接。RewriteRule ^(.*)$ http://%{SERVER_NAME}%{REQUEST_URI} [L,R]= 将所有^(.*)$重写为http://%{SERVER_NAME}%{REQUEST_URI}并使其成为[L]最后一条规则,即@987654328 @重定向。如果要使其永久化,请将 [L,R] 更改为 [L,R=303] `303 是“永久移动”的 HTTP 代码 -
@OCIA 我理解语法,如果端口 80 有连接,将其重定向到端口 http://,默认端口 (80) = 无用,无限循环