我的网站主机在网址末尾添加了?PHPSESSID = fgh2h45 ...

Jon*_*han 2 php apache hosting session

我正在使用iPage.com主机.为了在他们的主机中使用PHP会话,我需要session_save_path('/home/users/web/.../cgi-bin/tmp');在每个页面的开头添加(在我的例子中只有index.php,因为一切都先通过index.php).

现在,他们会自动将会话ID添加到请求的每个URL的末尾,如下所示:website.com/movies/details/?PHPSESSID = 4s54kjhdl ...

我认为这会导致问题,并可能影响谷歌索引和搜索引擎优化..

怎么预防这个?

Mar*_*iot 6

您的"主机"不会导致此问题,PHP会附加此数据.具体来说,PHP配置为将PHPSESSID变量附加到URL以允许PHP跟踪会话.可以ini_set在调用之前更改相关设置session_start,或者通过更新php.ini文件更永久地更改相关设置(尽管因为您托管了这最后一个选项可能已经用完).这是PHP中会话的可用运行时设置列表.

虽然您可以控制是否将值附加到URL的末尾,但是需要跟踪会话.或者,您可以将PHP配置为使用cookie来跟踪会话,但要求cookie跟踪会话可能会破坏拒绝cookie的用户的应用程序.

简而言之,您可以控制会话ID以使其更漂亮(通过将PHPSESSID重命名为更适合的东西或使值更不神秘)但除非您想使用cookie来维护会话,否则您将被困在这个"垃圾"中"在你的网址上.如果您使用cookie,则某些用户可能无法维护会话.

要启用基于cookie的会话处理,您可以执行以下操作:

// stop PHP from automatically embedding PHPSESSID on local URLs
ini_set('session.use_trans_sid', false);
Run Code Online (Sandbox Code Playgroud)

要么

// only use cookies (no url based sessions)
ini_set('session.use_only_cookies', true);
Run Code Online (Sandbox Code Playgroud)