{"action":"created","issue":{"url":"https://api.github.com/repos/owncloud/core/issues/14081","labels_url":"https://api.github.com/repos/owncloud/core/issues/14081/labels{/name}","comments_url":"https://api.github.com/repos/owncloud/core/issues/14081/comments","events_url":"https://api.github.com/repos/owncloud/core/issues/14081/events","html_url":"https://github.com/owncloud/core/pull/14081","id":57259253,"number":14081,"title":"Support pretty URLs","user":{"login":"LukasReschke","id":878997,"avatar_url":"https://avatars.githubusercontent.com/u/878997?v=3","gravatar_id":"","url":"https://api.github.com/users/LukasReschke","html_url":"https://github.com/LukasReschke","followers_url":"https://api.github.com/users/LukasReschke/followers","following_url":"https://api.github.com/users/LukasReschke/following{/other_user}","gists_url":"https://api.github.com/users/LukasReschke/gists{/gist_id}","starred_url":"https://api.github.com/users/LukasReschke/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/LukasReschke/subscriptions","organizations_url":"https://api.github.com/users/LukasReschke/orgs","repos_url":"https://api.github.com/users/LukasReschke/repos","events_url":"https://api.github.com/users/LukasReschke/events{/privacy}","received_events_url":"https://api.github.com/users/LukasReschke/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/owncloud/core/labels/5%20-%20To%20review","name":"5 - To review","color":"ededed"},{"url":"https://api.github.com/repos/owncloud/core/labels/discussion","name":"discussion","color":"fbca04"},{"url":"https://api.github.com/repos/owncloud/core/labels/Enhancement","name":"Enhancement","color":"02e10c"}],"state":"open","locked":false,"assignee":{"login":"LukasReschke","id":878997,"avatar_url":"https://avatars.githubusercontent.com/u/878997?v=3","gravatar_id":"","url":"https://api.github.com/users/LukasReschke","html_url":"https://github.com/LukasReschke","followers_url":"https://api.github.com/users/LukasReschke/followers","following_url":"https://api.github.com/users/LukasReschke/following{/other_user}","gists_url":"https://api.github.com/users/LukasReschke/gists{/gist_id}","starred_url":"https://api.github.com/users/LukasReschke/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/LukasReschke/subscriptions","organizations_url":"https://api.github.com/users/LukasReschke/orgs","repos_url":"https://api.github.com/users/LukasReschke/repos","events_url":"https://api.github.com/users/LukasReschke/events{/privacy}","received_events_url":"https://api.github.com/users/LukasReschke/received_events","type":"User","site_admin":false},"milestone":{"url":"https://api.github.com/repos/owncloud/core/milestones/31","html_url":"https://github.com/owncloud/core/milestones/8.1-current","labels_url":"https://api.github.com/repos/owncloud/core/milestones/31/labels","id":912160,"number":31,"title":"8.1-current","description":"","creator":{"login":"MorrisJobke","id":245432,"avatar_url":"https://avatars.githubusercontent.com/u/245432?v=3","gravatar_id":"","url":"https://api.github.com/users/MorrisJobke","html_url":"https://github.com/MorrisJobke","followers_url":"https://api.github.com/users/MorrisJobke/followers","following_url":"https://api.github.com/users/MorrisJobke/following{/other_user}","gists_url":"https://api.github.com/users/MorrisJobke/gists{/gist_id}","starred_url":"https://api.github.com/users/MorrisJobke/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/MorrisJobke/subscriptions","organizations_url":"https://api.github.com/users/MorrisJobke/orgs","repos_url":"https://api.github.com/users/MorrisJobke/repos","events_url":"https://api.github.com/users/MorrisJobke/events{/privacy}","received_events_url":"https://api.github.com/users/MorrisJobke/received_events","type":"User","site_admin":false},"open_issues":200,"closed_issues":646,"state":"open","created_at":"2014-12-22T12:04:01Z","updated_at":"2015-04-04T20:00:36Z","due_on":"2015-04-02T22:00:00Z","closed_at":null},"comments":28,"created_at":"2015-02-11T00:17:43Z","updated_at":"2015-04-04T23:32:00Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/owncloud/core/pulls/14081","html_url":"https://github.com/owncloud/core/pull/14081","diff_url":"https://github.com/owncloud/core/pull/14081.diff","patch_url":"https://github.com/owncloud/core/pull/14081.patch"},"body":"This changeset allows ownCloud to run with pretty URLs, they will be used by default if mod_rewrite and mod_env are available. This means basically that the `index.php` in the URL is not shown to the user anymore.\r\n\r\nAlso the not deprecated functions to generate URLs have been modified to support this behaviour, old functions such as `filePath` will still behave as before for compatibility reasons.\r\n\r\nExamples:\r\nhttp://localhost/index.php/s/AIDyKbxiRZWAAjP => http://localhost/s/AIDyKbxiRZWAAjP\r\nhttp://localhost/index.php/apps/files/ => http://localhost/apps/files/\r\n\r\nDue to the way our CSS and JS is structured the .htaccess uses some hacks for the final result but could be worse... And I was just annoyed by all that users crying for the removal of `index.php` ;-)\r\n\r\n@karlitschek @DeepDiver1975 Please decide if this is something we want to have. If yes I'll see how we could best unit-test this…\r\n\r\nFixes https://github.com/owncloud/core/issues/5744\r\n\r\nFixes #12345"},"comment":{"url":"https://api.github.com/repos/owncloud/core/issues/comments/89687543","html_url":"https://github.com/owncloud/core/pull/14081#issuecomment-89687543","issue_url":"https://api.github.com/repos/owncloud/core/issues/14081","id":89687543,"user":{"login":"MorrisJobke","id":245432,"avatar_url":"https://avatars.githubusercontent.com/u/245432?v=3","gravatar_id":"","url":"https://api.github.com/users/MorrisJobke","html_url":"https://github.com/MorrisJobke","followers_url":"https://api.github.com/users/MorrisJobke/followers","following_url":"https://api.github.com/users/MorrisJobke/following{/other_user}","gists_url":"https://api.github.com/users/MorrisJobke/gists{/gist_id}","starred_url":"https://api.github.com/users/MorrisJobke/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/MorrisJobke/subscriptions","organizations_url":"https://api.github.com/users/MorrisJobke/orgs","repos_url":"https://api.github.com/users/MorrisJobke/repos","events_url":"https://api.github.com/users/MorrisJobke/events{/privacy}","received_events_url":"https://api.github.com/users/MorrisJobke/received_events","type":"User","site_admin":false},"created_at":"2015-04-04T23:32:00Z","updated_at":"2015-04-04T23:32:00Z","body":"Looks like broken URLs:\r\n\r\n```\r\n00:13:10.933 There were 5 failures:\r\n00:13:10.933 \r\n00:13:10.933 1) Test_Util::testFormatDateWithTZFromSession with data set #3 (9.5, 'October 13, 2012 at 9:23:25 P...T+9:30')\r\n00:13:10.933 Failed asserting that two strings are equal.\r\n00:13:10.933 --- Expected\r\n00:13:10.933 +++ Actual\r\n00:13:10.933 @@ @@\r\n00:13:10.933 -'October 13, 2012 at 9:23:25 PM GMT+9:30'\r\n00:13:10.933 +'October 13, 2012 at 10:23:25 PM GMT+10:30'\r\n00:13:10.933 \r\n00:13:10.933 /var/jenkins/workspace/pull-request-analyser-ng-simple/label/SLAVE/tests/lib/util.php:78\r\n00:13:10.933 \r\n00:13:10.933 2) Test_Util::testGetDefaultPageUrlWithRedirectUrlWithoutFrontController\r\n00:13:10.936 Failed asserting that two strings are identical.\r\n00:13:10.936 --- Expected\r\n00:13:10.936 +++ Actual\r\n00:13:10.936 @@ @@\r\n00:13:10.936 -http://localhost//owncloudmyRedirectUrl.com\r\n00:13:10.936 +http://localhost/owncloud/myRedirectUrl.com\r\n00:13:10.936 \r\n00:13:10.936 /var/jenkins/workspace/pull-request-analyser-ng-simple/label/SLAVE/tests/lib/util.php:401\r\n00:13:10.936 \r\n00:13:10.936 3) Test_Util::testGetDefaultPageUrlWithRedirectUrlRedirectBypassWithoutFrontController\r\n00:13:10.937 Failed asserting that two strings are identical.\r\n00:13:10.937 --- Expected\r\n00:13:10.937 +++ Actual\r\n00:13:10.937 @@ @@\r\n00:13:10.937 -http://localhost//owncloudindex.php/apps/files/\r\n00:13:10.937 +http://localhost/owncloud/index.php/apps/files/\r\n00:13:10.937 \r\n00:13:10.937 /var/jenkins/workspace/pull-request-analyser-ng-simple/label/SLAVE/tests/lib/util.php:412\r\n00:13:10.937 \r\n00:13:10.937 4) OCA\\Files\\Controller\\ApiControllerTest::testGetFilesByTagSingle\r\n00:13:10.937 Failed asserting that two objects are equal.\r\n00:13:10.937 --- Expected\r\n00:13:10.937 +++ Actual\r\n00:13:10.937 @@ @@\r\n00:13:10.937                  'parentId' => null\r\n00:13:10.937 -                'date' => 'January 1, 1970 at 12:00:55 AM GMT+0'\r\n00:13:10.937 +                'date' => 'January 1, 1970 at 9:30:55 AM GMT+9:30'\r\n00:13:10.937                  'mtime' => 55000\r\n00:13:10.937                  'icon' => '/owncloud/core/img/filetypes/...df.svg'\r\n00:13:10.937                  'name' => 'root.txt'\r\n00:13:10.937                  'permissions' => null\r\n00:13:10.937                  'mimetype' => 'application/pdf'\r\n00:13:10.937                  'size' => 1234\r\n00:13:10.937                  'type' => 'file'\r\n00:13:10.937                  'etag' => 'MyEtag'\r\n00:13:10.937                  'path' => '/'\r\n00:13:10.937                  'tags' => Array (...)\r\n00:13:10.937              )\r\n00:13:10.937          )\r\n00:13:10.937      )\r\n00:13:10.937      'headers' => Array (...)\r\n00:13:10.937      'cookies' => Array ()\r\n00:13:10.937      'status' => 200\r\n00:13:10.937      'lastModified' => null\r\n00:13:10.937      'ETag' => null\r\n00:13:10.937      'contentSecurityPolicy' => OCP\\AppFramework\\Http\\ContentSecurityPolicy Object (...)\r\n00:13:10.937  )\r\n00:13:10.937 \r\n00:13:10.937 /var/jenkins/workspace/pull-request-analyser-ng-simple/label/SLAVE/apps/files/tests/controller/apicontrollertest.php:131\r\n00:13:10.937 \r\n00:13:10.937 5) OCA\\Files\\Controller\\ApiControllerTest::testGetFilesByTagMultiple\r\n00:13:10.938 Failed asserting that two objects are equal.\r\n00:13:10.938 --- Expected\r\n00:13:10.938 +++ Actual\r\n00:13:10.938 @@ @@\r\n00:13:10.938                  'parentId' => null\r\n00:13:10.938 -                'date' => 'January 1, 1970 at 12:00:55 AM GMT+0'\r\n00:13:10.938 +                'date' => 'January 1, 1970 at 9:30:55 AM GMT+9:30'\r\n00:13:10.938 \r\n00:13:10.938 @@ @@\r\n00:13:10.938                  'parentId' => null\r\n00:13:10.938 -                'date' => 'January 1, 1970 at 12:16:39 AM GMT+0'\r\n00:13:10.938 +                'date' => 'January 1, 1970 at 9:46:39 AM GMT+9:30'\r\n00:13:10.938                  'mtime' => 999000\r\n00:13:10.938                  'icon' => '/owncloud/core/img/filetypes/...on.svg'\r\n00:13:10.938                  'name' => 'root.txt'\r\n00:13:10.938                  'permissions' => null\r\n00:13:10.938                  'mimetype' => 'application/binary'\r\n00:13:10.938                  'size' => 9876\r\n00:13:10.938                  'type' => 'file'\r\n00:13:10.938                  'etag' => 'SubEtag'\r\n00:13:10.938                  'path' => '/'\r\n00:13:10.938                  'tags' => Array (...)\r\n00:13:10.938              )\r\n00:13:10.938          )\r\n00:13:10.938      )\r\n00:13:10.938      'headers' => Array (...)\r\n00:13:10.938      'cookies' => Array ()\r\n00:13:10.938      'status' => 200\r\n00:13:10.938      'lastModified' => null\r\n00:13:10.938      'ETag' => null\r\n00:13:10.938      'contentSecurityPolicy' => OCP\\AppFramework\\Http\\ContentSecurityPolicy Object (...)\r\n00:13:10.938  )\r\n00:13:10.938 \r\n00:13:10.938 /var/jenkins/workspace/pull-request-analyser-ng-simple/label/SLAVE/apps/files/tests/controller/apicontrollertest.php:215\r\n```\r\n\r\nThe time unit tests will hopefully be fixed by a rebase?!?"}}