像许多Web开发人员一样,当请求不是针对公共服务目录中存在的文件时,我喜欢使用.htaccess通过单个入口点将所有流量定向到域.
所以像这样:
RewriteEngine On
# enable symbolic links
Options +FollowSymLinks
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.+) index.php [L]
Run Code Online (Sandbox Code Playgroud)
这意味着如果请求不是针对css文件或图像,我的index.php会获取请求,我可以选择要做什么(提供一些内容或者可能是404)
效果很好,但我偶然发现了一个似乎无法帮助我解决的问题.
我的文档根看起来像这样:
asymboliclink -> /somewhere/else
css
.htaccess
img
includes
index.php
Run Code Online (Sandbox Code Playgroud)
但是,Apache没有将目录的符号链接看作目录.它将请求传递给root中的index.php.我希望将链接作为文件夹提供,因为它是指向具有自己index.php的文件夹的链接.我可以通过在浏览器的地址栏中输入来访问http://example.com/asymboliclink/index.php,但我希望能够通过http://example.com/asymboliclink访问它
我需要将哪些内容添加到我的.htaccess文件中才能实现此目的?
所以,这是获取youtube用户的公共播放列表的代码:
function getyoutubeplaylists($userName) {
$yt = connectyoutube();
$yt->setMajorProtocolVersion(2);
$playlistListFeed = $yt->getPlaylistListFeed($userName);
foreach ($playlistListFeed as $playlistListEntry) {
$playlist['title'] = $playlistListEntry->title->text;
$playlist['id'] = $playlistListEntry->getPlaylistID();
$playlists[] = $playlist;
$playlistVideoFeed = $yt->getPlaylistVideoFeed($playlistListEntry->getPlaylistVideoFeedUrl());
foreach ($playlistVideoFeed as $videoEntry) {
$playlist_assignment['youtube_id'] = substr($videoEntry->getVideoWatchPageUrl(),31,11);
$playlist_assignment['id'] = $playlist['id'];
$playlist_assignments[] = $playlist_assignment;
}
}
$everything['playlists'] = $playlists;
$everything['playlist_assignments'] = $playlist_assignments;
return $everything;
}
Run Code Online (Sandbox Code Playgroud)
问题是,这只会得到第一页或结果.关于如何使用Zend Gdata检索下一页结果的任何想法?
原始gdata XML显示了所需的URL:
<link rel="self" type="application/atom+xml" href="http://gdata.youtube.com/feeds/api/users/pennstate/playlists?start-index=1&max-results=25"/>
<link rel="next" type="application/atom+xml" href="http://gdata.youtube.com/feeds/api/users/pennstate/playlists?start-index=26&max-results=25"/>
Run Code Online (Sandbox Code Playgroud)
但是,getPlaylistListFeed似乎没有任何参数来指定"start-index"或"max-results".