如果我使用.htaccess mod重写规则,PHP Cookie不可用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如果我使用.htaccess mod重写规则,PHP Cookie不可用相关的知识,希望对你有一定的参考价值。

我正在使用.htaccess重写规则。我的规则是

Options -MultiViews

RewriteEngine on
RewriteRule ^Login login.php [NC,L]
RewriteRule ^Register register.php [NC,L]
RewriteRule ^Posts/([0-9a-zA-Z_-]+)/([0-9a-zA-Z_-]+) posts.php?category=$1&subcategory=$2 [NC,L]

一切都很完美,但问题在于:

如果我访问

<a href='Login'>Login</a> from website home page it is redirecting to login.php that is perfectly working

但如果我访问

<a href='Login'>Login</a> from website posts page it is redirecting to Posts/login.php which is incorrect. It should redirect to login.php only.

为了解决这个问题,我在登录按钮中使用了直接页面

<a href='http://www.mywebsite.com/Login'>Login</a> 

它的工作完全正常,但问题是,cookie不可用,因为我需要在每个页面的cookie中保持城市名称。

检查我的网站链接:http://fidfeet.com/Loginhttp://fidfeet.com/Categories/Login

第一个是工作,因为我在主页,但第二个不工作,因为我在类别页面。

答案

您的链接指向相对路径,这就是他们没有从子目录解析到同一位置的原因。他们应该指向/ Login以引用root的Login。

从第一个路径定义cookie后,cookie在第二个路径上可用。右上方有一个框,列出我选择的城市。

以上是关于如果我使用.htaccess mod重写规则,PHP Cookie不可用的主要内容,如果未能解决你的问题,请参考以下文章

PHP/Apache:用 .htaccess 重写规则

复杂的 htaccess 重写规则 - 我从哪里开始?

301 Htaccess 重写规则查询字符串

.htaccess:重写URL的规则[重复]

mod_rewrite 适用于 .htaccess 文件,但不适用于 apache2.conf

多个 .htaccess 文件中多个 mod_rewrite 规则的优先级是啥? [关闭]