Server: Pretty urls don't work if it's only a domain with no trailing slash

Created on 13 Aug 2018  路  14Comments  路  Source: nextcloud/server

Steps to reproduce

  1. manual upgrade from NC 13.0.5 to 14.0.0 Beta 3
  2. login on upgraded nextcloud website

Expected behaviour

URL should be:
https://fqdnservername/apps/activity/

Actual behaviour

https://fqdnservername/index.php/apps/activity/

Server configuration

Operating system:
Debian 9.5

Web server:
Apache/2.4.25

Database:
PostgreSQL 9.6.10

PHP version:
7.0.30

Nextcloud version: (see Nextcloud admin page)
14.0.0 Beta 3

Updated from an older Nextcloud/ownCloud or fresh install:
13.0.5

Where did you install Nextcloud from:
Manual install, sources from nc website

List of activated apps:


App list
Enabled:

  • accessibility: 1.0.1
  • activity: 2.7.0
  • cloud_federation_api: 0.0.1
  • comments: 1.4.0
  • dav: 1.6.0
  • federatedfilesharing: 1.4.0
  • federation: 1.4.0
  • files: 1.9.0
  • files_pdfviewer: 1.3.2
  • files_sharing: 1.6.2
  • files_texteditor: 2.6.0
  • files_trashbin: 1.4.1
  • files_versions: 1.7.1
  • files_videoplayer: 1.3.0
  • firstrunwizard: 2.3.0
  • gallery: 18.1.0
  • logreader: 2.0.0
  • lookup_server_connector: 1.2.0
  • nextcloud_announcements: 1.3.0
  • notifications: 2.2.1
  • oauth2: 1.2.1
  • password_policy: 1.4.0
  • provisioning_api: 1.4.0
  • serverinfo: 1.4.0
  • sharebymail: 1.4.0
  • support: 1.0.0
  • survey_client: 1.2.0
  • systemtags: 1.4.0
  • theming: 1.5.0
  • twofactor_backupcodes: 1.3.0
  • updatenotification: 1.4.1
  • workflowengine: 1.4.0
    Disabled:
  • admin_audit
  • encryption
  • files_external
  • user_external
  • user_ldap

Nextcloud configuration:


Config report

{
"system": {
"instanceid": "REMOVED SENSITIVE VALUE",
"passwordsalt": "REMOVED SENSITIVE VALUE",
"secret": "REMOVED SENSITIVE VALUE",
"trusted_domains": [
"nctest13pgsql.lan"
],
"datadirectory": "REMOVED SENSITIVE VALUE",
"overwrite.cli.url": "https://nctest13pgsql.lan",
"htaccess.RewriteBase": "/",
"dbtype": "pgsql",
"memcache.local": "\OC\Memcache\APCu",
"version": "14.0.0.15",
"dbname": "REMOVED SENSITIVE VALUE",
"dbhost": "REMOVED SENSITIVE VALUE",
"dbport": "",
"dbtableprefix": "oc_",
"dbuser": "REMOVED SENSITIVE VALUE",
"dbpassword": "REMOVED SENSITIVE VALUE",
"installed": true,
"maintenance": false,
"loglevel": 2,
"mail_smtpmode": "sendmail",
"mail_smtpauthtype": "LOGIN"
}
}

Are you using external storage, if yes which one: local/smb/sftp/...
No

Are you using encryption: yes/no
No

Are you using an external user-backend, if yes which one: LDAP/ActiveDirectory/Webdav/...
No

Client configuration

Browser:
Firefox 61.0.1

Operating system:
OpenSUSE Tumbleweed

Extra remarks:
Also tried to update htaccess via command:
sudo -u www-data php /var/www/nextcloud/occ maintenance:update:htaccess
but reponse is:
Error updating .htaccess file, not enough permissions or "overwrite.cli.url" set to an invalid URL?

www-data owns htaccess files and is writable.

This is a test intance for my nextcloud.
I already upgraded via same procedure from 13.0.0 to 13.0.5 without issues

bug good first issue

Most helpful comment

When you run maintenance:update:htaccess from cli this code is executed https://github.com/nextcloud/server/blob/master/lib/private/Setup.php#L446

image

Could you change overwrite.cli.url to 'https://nctest13pgsql.lan/' (append a /) and try again?

All 14 comments

GitMate.io thinks possibly related issues are https://github.com/nextcloud/server/issues/359 (Theming app doesn't work when pretty URLs is enabled), https://github.com/nextcloud/server/issues/7547 ([Clarification Request or Bug] Pretty Urls does not work for me), https://github.com/nextcloud/server/issues/5975 (Preview of theming does not work anymore), https://github.com/nextcloud/server/issues/10112 (Access over old URL ../owncloud no longer works), and https://github.com/nextcloud/server/issues/9182 (Just a question // Feature request // Pretty Share URL).

Some further testing:
Same result when using the webupdater and selecting option "Yes", continuing with 鈥淐ommand line based upgrade".
sudo -u www-data php /var/www/nextcloud/occ upgrade gives no errors.
But result is no pretty urls.
sudo -u www-data php /var/www/nextcloud/occ maintenance:update:htaccess give same error as reported.

Choosing option "No" and using webbased upgrade gives result as expected, pretty urls are working.

When you run maintenance:update:htaccess from cli this code is executed https://github.com/nextcloud/server/blob/master/lib/private/Setup.php#L446

image

Could you change overwrite.cli.url to 'https://nctest13pgsql.lan/' (append a /) and try again?

Tested with 'overwrite.cli.url' => 'https://nctest13pgsql.lan/'
And that fixed it. Pretty urls are working again, maintenance command gives no error and updates htaccess file.

Issue is closed, however I have to note that a default install won't put a trailing forward slash.
Also in documentation for pretty urls, no trailing forward flash is mentioned.

I add this issue too after upgrading from 13.0.6 to 14.0.0.9.

If the missing / could not be handled in code, a warning somewhere in docs would save time.

@MorrisJobke what problem did you try to fix with https://github.com/nextcloud/server/commit/82869b6d814560283c0d0771437cbd6f98cd102f? I could move the logic to a static method findWebroot and introduce a unit test for it to make this more stable.

This should be mentioned in the documentation

@MorrisJobke what problem did you try to fix with 82869b6?

Just a misconfiguration.

If the missing / could not be handled in code, a warning somewhere in docs would save time.

It would be better to detect this and add it automatically. Basically this applies only to the domain without a path.

@MorrisJobke would #11446 work for the case you fixed with https://github.com/nextcloud/server/commit/82869b6d814560283c0d0771437cbd6f98cd102f?

On my 14.0.1.1 installed version adding the trailing / do not fix the problem at all.
Pretty URL do not work anymore at this stage.

Please take a look at #11673. Maybe this works for you as well.

Unfortunately not: mod_env is available on my setup, htaccess.RewriteBase is setup to / and still occ maintenance:update:htaccess does not add the specified section in the .htaccess but produce the Error updating .htaccess file, not enough permissions or "overwrite.cli.url" set to an invalid URL? message.

The strange thing is that the disappearance of the pretty URL have clearly been introduced by the upgrade process from 13.0.6 to 14.0.1.1 which have been done through the web interface and finished by the CLI command occ upgrade.

I find the trouble: I was guilty, and adding the trailing slash fixed the pretty URL.
I still use an old script from my initial installation to fix rights after every upgrade (https://docs.nextcloud.com/server/9/admin_manual/installation/installation_wizard.html#strong-perms-label) which gives the .htaccess to root and not to the web server user. This part of the manual disappeared in 10, but since I only have done upgrade I did not notice that this was not up to date informations.

Was this page helpful?
5 / 5 - 1 ratings