1

我正在使用一个简单的 htaccess 文件来重写我的项目的 url。我在一个 get 变量中重写了整个 url,然后使用 php 来解析它。

我的问题是当我尝试发送重定向标头时,我似乎无法正确处理。

例如,假设我正在查看页面

localhost/myProject/home

带头

header('Location: login');

它重定向到

localhost/myProject/home/login

当我尝试

 header('Location: /login');

它需要我

localhost/login 

这不存在,我收到 404 错误。

到目前为止,我发现工作的唯一方法就是当我这样做的时候

header('Location: http://localhost/myProject/login');

但我认为这不是一个好的选择,因为当我的网站上线时,我将不得不更改每一个标题。

有更好的方法吗?

我的 .htacces 文件是:

RewriteEngine On 
RewriteBase /myProject/

#Make sure it's not an actual file 
RewriteCond %{REQUEST_FILENAME} !-f

#Make sure its not a directory 
RewriteCond %{REQUEST_FILENAME} !-d 

#Rewrite the request to index.php 
RewriteRule ^(.*)$ index.php?get=$1 [L]
4

1 回答 1

1

您可以这样做:为此使用基本 url 变量。在全局或配置文件中定义该变量。您只需更改一次该变量:

$base_url = "http://google.com"; or define('base_url', 'http://google.com');
于 2013-11-11T07:55:32.533 回答