Выполнение два переписывает с апачем, и перепишите модуль вместе с webdav

Я управляю двумя сайтами Wordpress.

Сайт 1 деталь:

WordPress: 3.0.1
PHP: 5.2.13
MySQL: 5.1.47
WebServer: Microsoft-IIS/6.0

Здесь web.config не записан WordPress, когда изменения постоянных ссылок сохраняются

Сайт 2 детали:

WordPress: 3.0.1
PHP: 5.2.13
MySQL: 5.1.47
WebServer: Microsoft-IIS/7.5

Здесь web.config записан WordPress, когда изменения постоянной ссылки сохраняются

1
задан 20 July 2012 в 13:03
2 ответа

Я нашел рабочую конфигурацию. Теперь я использую следующее:

LoadModule dbd_module modules/mod_dbd.so
LoadModule authn_dbd_module modules/mod_authn_dbd.so
DBDriver mysql
DBDParams "host=db.example.com user=username pass=password dbname=webdav"

<VirtualHost *:80>

Servername webdav.example.com

DocumentRoot /var/www

Options +FollowSymlinks
RewriteLog "/var/log/httpd/rewrite.log"
RewriteLogLevel 2
RewriteEngine on

RewriteMap usergroup txt:/etc/httpd/usersingroups
RewriteCond %{REQUEST_URI} !^/SharedFolder [NC]
RewriteRule .? - [S=2]
RewriteRule ^/SharedFolder/(.*)$ /sharedfolders/${usergroup:%{LA-U:REMOTE_USER}}$1
RewriteRule .? - [S=2]

RewriteCond %{REQUEST_URI} !^/SharedFolder [NC]
RewriteRule ^(.*)$ /webdav/%{LA-U:REMOTE_USER}$1

<Directory "/var/www">
    DAV on
    Options +Indexes
            AuthName "example.com"
            AuthType Digest
            AuthDigestDomain /

            AuthDigestProvider dbd
            AuthDBDUserRealmQuery "SELECT digest FROM users WHERE username = %s AND unix_timestamp() < (ts+900) "

            Require valid-user
</Directory>
</VirtualHost>

Я создал конструкцию if-then-else, пропустив строки, если необходимо применить определенное условие. Кроме того, я также сделал RewriteRule для SharedFolder немного более конкретным. Это в основном помогло. После этого диспетчер трафика (обратный прокси) поставил меня на неверную ногу, который выполняет разгрузку SSL на этот хост (отсюда : 80 в . Просмотр, загрузка и удаление работали нормально, за исключением переименования. Оказывается, когда вы переименовываете файл или папку в WebDAV, отправляется весь заголовок назначения, а не только путь при загрузке или удалении файл или папку. Имейте это в виду, когда вы выполняете какую-либо форму разгрузки SSL.

0
ответ дан 4 December 2019 в 01:03

Проблема здесь:

RewriteRule ^(.*)$ /sharedfolders/${usergroup:%{LA-U:REMOTE_USER}}$1

Вы перехватываете каталог, используемый в URL-адресе, сохраняете его в $ 1, а затем добавляете $ 1 в конец строки. Если вы не указали добавленную часть URL-адреса, просто удалите $ 1 в конце.

Чтобы остановить перезапись после правила общих папок, добавьте флаг [L] в конец.

Таким образом, правило должно иметь следующий вид:

RewriteRule ^(.*)$ /sharedfolders/${usergroup:%{LA-U:REMOTE_USER}} [L]
1
ответ дан 4 December 2019 в 01:03

Теги

Похожие вопросы