如何编写htaccess将简单URL重定向到子文件夹中的等效查询? (带身份验证)

时间:2018-03-12 06:54:15

标签: .htaccess

我有一个子文件夹内容:

www.mydomain.com/content

用户可以在此位置登录。我还创建了一个页面,它将使用PHP页面直接加载内容:

www.mydomain.com/content/direct.php?direct=<contentid>

用户可以使用该链接并共享它们。但是,如果用户尚未通过身份验证,则应将其重定向到主页,并显示一条消息,告知他们需要登录:

www.mydomain.com/content/index.php?error=4

我想支持简单的URL,例如:

www.mydomain.com/content/direct/<contentid>

但是,我收到的重定向错误太多了。我可以知道如何编写HTACCESS文件吗?

这是我目前放在子文件夹/ content /中使用的HTACCESS:

Options +FollowSymLinks
RewriteEngine On

#direct
RewriteRule ^/?direct/([^/d]+)/?$ direct.php?direct=$1 [QSA]

#SSL
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

1 个答案:

答案 0 :(得分:0)

我解决的解决方案是使用以下代码将.HTACCESS文件放在根目录而不是子文件夹中

RewriteRule ^/?content/([^/d]+)/?$ subfolder/content.php?content=$1 [R=301,L]

我使用了[R = 301,L],因为我更喜欢真实的URL对用户可见。我只需要简单的URL就可以更容易地将它们集成到不喜欢查询字符串的现有平台中。

在content.php中,如果用户未经过身份验证,我会将重定向放入登录页面。这可以防止多重重定向错误。