网址重写问题:无法从重新编写的网址访问我的会话和图片

时间:2011-09-21 09:30:15

标签: php apache redirect url-rewriting

我在我的网站上使用了这条规则:

<IfModule mod_rewrite.c>
   Options +FollowSymlinks
    Options -Multiviews
    RewriteEngine on
    RewriteBase /

    RewriteCond %{HTTP_HOST} ^www.erecruitmentportal.com$
    RewriteRule ^(.*) http://erecruitmentportal.com/$1 [QSA,R=301]

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^([^/]+)/?$ employers/page.php?page=$1 [L]
</IfModule>

当一个人登录网站时,它只在/ employer /目录中设置一个会话。这意味着只有该目录中的文件才能访问该会话。

现在将网址从http://example.com/name重写为http://example.com/employers/page.php?page= $ 1,

  1. 我无法再次访问我的会话
  2. 在雇主文件夹中的
  3. ,我有一个文件夹 - 徽标,现在我无法从page.php访问logos / pic.jpg(这就是网址重写版本)。它仍然可以从根目录看到该页面。
  4. 我在考虑它是一个重写基础问题,所以我如何修改它以便它可以很好地工作,而不会影响其他可能遵循的规则。

    由于

    修改

    这是我的会话设置:

    session_start();
    session_set_cookie_params ( $this->sessiontimeout, $this->subdomain, $this->website, 0, 1 );
    //i want the session to be available only to files in a particular folder
    ini_set('session.use_only_cookies', 1);
    

2 个答案:

答案 0 :(得分:0)

您必须将这些图片添加为/employers/logos/pic.jpg

至于您使用它的会话非常错误。
使用一些代码逻辑检查权限,而不是笨拙的HTTP请求。

让您的会话随处可用,但只在这些会话中检查特定文件夹中的文件

答案 1 :(得分:0)

在您的页眉中

在您的头标记之间添加基本网址,例如http://example.com/mysite。不要把www放在你的基础url.t这是你的页面将从

开始加载的地方