如何使用htaccess为两个不同的页面保留相同的URL路径

时间:2020-02-22 07:25:35

标签: php .htaccess

我想在用户采取高级计划后更改网站的原始页面,但URL路径保持不变。

如果用户不是高级用户,则我的网站显示URL路径:www.mydomain.com/user-545(原始页面-www.mydomain.com/page1.php)

但是在用户采取我的高级计划后,我需要保持URL路径不变www.mydomain.com/user-545,但是需要更改我的原始页面-www.mydomain.com/page2.php

4 个答案:

答案 0 :(得分:2)

最好使用基于url页面上包含的条件来包含相关页面。

答案 1 :(得分:0)

您将要设置一个URL掩码。

在htaccess文件中,您将添加以下内容:

RewriteEngine On
RewriteRule ^user-545/?$ /page2.php

或者您可能要按照this answer中的说明设置代理。

答案 2 :(得分:0)

您可以通过技巧达到目标。在用户登录时设置cookie,例如user_logged_in,在用户退出时将其删除。然后检查用户是否登录,将用户定向到page2.php,否则,通过检查page1.php是否使用RewriteCond文件来设置RewriteRule.htaccess cookie user_logged_in是否存在。

确保重写模块已打开。然后将RewriteCondRewriteRule设置如下:

RewriteEngine On

RewriteCond %{HTTP_COOKIE} !user_logged_in [NC]
RewriteRule ^/?user-[0-9]+$ /page1.php

RewriteCond %{HTTP_COOKIE} user_logged_in [NC]
RewriteRule ^/?user-[0-9]+$ /page2.php

// Other rules

注意:在这种情况下,您必须使用加密技术上的cookie。

答案 3 :(得分:0)

为什么在.htaccess中这样做?用PHP做到这一点会更简单吗?

  • 从page1和page2中删除会话开始代码(可能是相同的) 并移至“ session-start.php”
  • (可选),您可以将最常见的代码从page1和page2移到session-start.php
  • 将page1重命名为normal.php
  • 将page2重命名为premium.php
  • 创建新的page1.php:

    需要'session-start.php'; 如果(array_key_exists('premium',$ _SESSION)){ 如果($ _SESSION ['premium']){ 包括'premium.php'; 出口(); } } 包括'normal.php';

您完成了。