我有一个网站 [托管在 DreamHost 上],主要内容使用 WordPress,但 Subversion 存储库在 http://mysite/svn .
我的文件布局是:
webroot/
blog # wordrpress files
.htaccess
我的 SVN 存储库位于 Web 根目录之外,但它们已正确映射到/svn/repository URL。
当我将 WordPress 永久链接重写规则放入我的 .htaccess 文件时,博客页面和永久链接运行良好,但它会破坏 Subversion。
这是我的 .htaccess 文件,删除了所有无关的内容:
RewriteEngine On
RewriteBase /
# try 1
#RewriteCond %{REQUEST_URI} svn [NC]
#RewriteRule . - [PT,L]
# try 2
#RewriteRule ^svn.* - [PT,L]
# try 3
#RewriteCond %{REQUEST_URI} !^svn
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . blog/index.php [L]
最后一行中断了 Subversion。客户端错误是这样的:
$ svn ls https://mysite/svn/myrepo/
svn: PROPFIND request failed on '/svn'
svn: PROPFIND of '/svn': 405 Method Not Allowed (https://mysite)
如果我注释掉最后一行 RewriteRule 。 blog/index.php
,Subversion 有效。但是让 WordPress 处理漂亮的永久链接内容并没有。
我尝试了我在上面评论过的三种“忽略任何以‘svn’开头的 URL”方法,但都没有用——它们似乎什么也没做。有或没有 PT 传递标志。
我在谷歌上搜索了很多,似乎其他人都被 mod_rewrite 和 WebDAV(Subversion 使用的)相互踩踏所困扰。我找到了 an extremely similar abandoned SO question here too ,但没有有效的解决方案。有什么线索吗?
最佳答案
我认为您应该寻求 Dreamhost 的支持。我和他们有一些网站,并且一直得到很好的支持。
无论如何,this solution怎么样? ?
SVN 仓库(SVNRepo)
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{THE_REQUEST} SVNRepo
RewriteRule . - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
关于svn - 我怎样才能说服 mod_rewrite 远离我的 Subversion 存储库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2107499/