【问题标题】:fixing URL in Owncloud application to remove requirements to have index.php in url修复 Owncloud 应用程序中的 URL 以消除在 url 中有 index.php 的要求
【发布时间】:2015-04-27 20:17:26
【问题描述】:

我有 apache 2.2.15。在其中,我有一个 owncloud 的虚拟目录。我正在尝试使用http://cargobay.trekfederation.com,但是当我键入它时,我的系统会响应 Apache HTTP Server 默认页面。如果我输入http://cargobay.trekfederation.com/index.php,它会起作用。在我的 .htaccess 文件中,我尝试了一系列不同的 RewriteRules 均无济于事。

httpd 条目如下所示:

<VirtualHost *:80>
ServerName cargobay.trekfederation.com
ServerAlias cargobay.trekfederation.net
DocumentRoot /var/www/html/owncloud
DirectoryIndex index.php index.html
<Directory /var/www/html/owncloud>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        Allow from all
</Directory>
</VirtualHost>

owncloud .htaccess 文件如下所示:

# Version: 8.0.2
<IfModule mod_fcgid.c>
<IfModule mod_setenvif.c>
<IfModule mod_headers.c>
SetEnvIfNoCase ^Authorization$ "(.+)" XAUTHORIZATION=$1
RequestHeader set XAuthorization %{XAUTHORIZATION}e env=XAUTHORIZATION
</IfModule>
</IfModule>
</IfModule>
<IfModule mod_php5.c>
php_value upload_max_filesize 513M
php_value post_max_size 513M
php_value memory_limit 512M
php_value mbstring.func_overload 0
php_value always_populate_raw_post_data -1
<IfModule mod_env.c>
  SetEnv htaccessWorking true
</IfModule>
</IfModule>
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /(.*)index\.php($|\ |\?)
RewriteRule ^ /%1 [R=301,L]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule .* - [env=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteRule ^\.well-known/host-meta /public.php?service=host-meta [QSA,L]
RewriteRule ^\.well-known/host-meta\.json /public.php?service=host-meta-json [QSA,L]
RewriteRule ^\.well-known/carddav /remote.php/carddav/ [R]
RewriteRule ^\.well-known/caldav /remote.php/caldav/ [R]
RewriteRule ^apps/calendar/caldav\.php remote.php/caldav/ [QSA,L]
RewriteRule ^apps/contacts/carddav\.php remote.php/carddav/ [QSA,L]
RewriteRule ^remote/(.*) remote.php [QSA,L]
RewriteRule ^(build|tests|config|lib|3rdparty|templates)/.* - [R=404,L]
RewriteRule ^(\.|autotest|occ|issue|indie|db_|console).* - [R=404,L]
</IfModule>
<IfModule mod_mime.c>
AddType image/svg+xml svg svgz
AddEncoding gzip svgz
</IfModule>
<IfModule mod_dir.c>
DirectoryIndex index.php index.html
</IfModule>
AddDefaultCharset utf-8
Options -Indexes
<IfModule pagespeed_module>
        ModPagespeed Off
</IfModule>
<IfModule mod_headers.c>
  <FilesMatch "\.(css|js)$">
    Header set Cache-Control "max-age=7200, public"
  </FilesMatch>
</IfModule>

ErrorDocument 403 /core/templates/403.php
ErrorDocument 404 /core/templates/404.php

【问题讨论】:

    标签: php apache .htaccess mod-rewrite


    【解决方案1】:

    我找到了解决方案here:你需要更新.htaccess文件通过ownCloud命令行实用程序(也许除了systemctl restart apache2),像这样:

    $ sudo -u www-data php /var/www/html/owncloud/occ maintenance:update:htaccess
    
    .htaccess has been updated
    

    您必须使用sudo -u 指定用户(在我的情况下,www-data 可以写入 Apache 目录)。

    还要检查您的owncloud/ 文件夹所在的目录(在我的情况下为/var/www/html/owncloud/)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-04-03
      • 1970-01-01
      • 1970-01-01
      • 2014-09-26
      • 2021-05-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多