I have OJS configured to serve multiple journals from a single install, with some titles accessible using ojs.domain.tld/journal format and others using journal.domain.tld format (both omitting index.php). I followed post1, post 2, which seem pretty close to my use case. The site works mostly as expected except for one problem.
When I am logged in as admin for journal1.domain.tld and attempt to upload a logo, favicon, of css file, I get a 404 error (stack trace below). The same task works without error for ojs.domain.tld/journal2. I can get around the 404 error by removing journal1.domain.tld’s rewrite rules in .htaccess and temporarily changing base_url [journal1] from journal1.domain.tld to ojs.domain.tld/journal1.
So I think I may need additional rewrite rule(s) to make journal.domain.tld titles work correctly for admin upload tasks. Is anyone able to suggest rewrite rules for this? It took a while to get this far and I think this is the last step.
Thanks very much for whatever assistance you can provide. I’ll include details below about my config along with the stack trace.
Eric
Config.inc.php changes
base_url = "https://ojs.domain.tld”
base_url[journal1] = “https://journal1.domain.tld”
base_url[journal2] = "https://ojs.domain.tld/journal2”
restful_urls = Off
allowed_hosts = "["ojs.domain.tld\”,\”journal1.domain.tld\”]”
Journal2 vhost settings for DocumentRoot and Directory
DocumentRoot “/opt/ojs”
<Directory “/opt/ojs”>
Options -Indexes +FollowSymLinks +Includes +MultiViews
Require all granted
AllowOverride All
/opt/ojs/.htaccess contents
RewriteEngine On
RewriteBase /
## Journal2 is forwarded to its own domain, journal1.domain.tld
RewriteCond %{SERVER_NAME} ^journal1.domain.tld
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.)$ /index.php/journal2/$1 [QSA,L]
## All other journals are accessible from ojs.domain.tld/journal2
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.)$ /index.php/$1 [QSA,L]
Stack trace from css upload:
File: /opt/ojs/lib/pkp/classes/core/PKPPageRouter.inc.php line 209
Function: Dispatcher->handle404()
File: /opt/ojs/lib/pkp/classes/core/Dispatcher.inc.php line 144
Function: PKPPageRouter->route(Object(Request))
File: /opt/ojs/lib/pkp/classes/core/PKPApplication.inc.php line 362
Function: Dispatcher->dispatch(Object(Request))
File: /opt/ojs/index.php line 68
Function: PKPApplication->execute()