【问题标题】:Wordpress directory conflict: Need advice on htaccess pathsWordpress 目录冲突:需要有关 htaccess 路径的建议
【发布时间】:2015-04-09 14:49:25
【问题描述】:

我正在将网站迁移到 Wordpress,并使用 Multiblog 功能。无论如何,我都不是 htaccess 专家,但我确实设法定期使用它。所以我在这里寻求一些专家建议。

网站 www.blather.ie 将使用与旧网站相同的子博客路径。我需要保留旧文件夹 - 例如 www.blather.ie/zeitgeist 和一些旧内容,同时将 Wordpress 博客发布到同一路径。当我尝试这样做时,我意识到会发生 403 错误。于是我找到了workaround herehere

按照这些页面中描述的向我的 htaccess 添加行到我的现有文件不起作用。当我清除 htaccess 文件并从头开始时,我不再收到 403 错误 - 内容出现了,但没有任何主题/样式表。我检查了源代码,发现它试图从 www.blather.ie/zeitgeist/wp-content... 中提取信息,但它不存在 - 它需要从 www.blather.ie/wp-内容/...

此外,此“修复”还开始在管理后端创建循环。不知道为什么。

所以,这是我原来的 htaccess 文件:

# BEGIN WordPress

Options +FollowSymLinks
<IfModule mod_rewrite.c>

RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]

# uploaded files
RewriteRule ^([_0-9a-zA-Z-]+/)?files/(.+) wp-includes/ms-files.php?file=$2 [L]

# add a trailing slash to /wp-admin
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]

  
RewriteRule  ^[_0-9a-zA-Z-]+/(wp-(content|admin|includes).*) $1 [L]
RewriteRule  ^[_0-9a-zA-Z-]+/(.*\.php)$ $1 [L]
RewriteRule . index.php [L]
</IfModule>

# END WordPress

这里是相同的 htaccess 与推荐的目录冲突问题修复,但仍然会导致 403 错误。

# BEGIN WordPress

Options +FollowSymLinks
<IfModule mod_rewrite.c>

RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]

# uploaded files
RewriteRule ^([_0-9a-zA-Z-]+/)?files/(.+) wp-includes/ms-files.php?file=$2 [L]

# add a trailing slash to /wp-admin
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]

# Fix 403 errors on existing directories; WordPress overrides.
RewriteCond %{REQUEST_URI} ^/(zeitgeist)/ 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule . /index.php [L]


RewriteRule  ^[_0-9a-zA-Z-]+/(wp-(content|admin|includes).*) $1 [L]
RewriteRule  ^[_0-9a-zA-Z-]+/(.*\.php)$ $1 [L]
RewriteRule . index.php [L]
</IfModule>

# END WordPress

这是取自第一个推荐网站的“干净”htaccess - 它可以治愈 403,但会破坏路径,指向错误的样式表位置,并在后端导致重定向循环和 403:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# Fix 403 errors on existing directories; WordPress overrides.
RewriteCond %{REQUEST_URI} ^/(zeitgeist)/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

所以 - 我的问题 - 我的路径哪里出了问题,并导致这些该死的反馈循环?

提前致谢!

【问题讨论】:

    标签: wordpress apache .htaccess mod-rewrite


    【解决方案1】:

    试试这个?使用基本的 WP .htaccess,不要花哨,而是在每个旧文件夹(这些是 dirs 对吗?)中放置一个小的 .htaccess,以禁用文件夹中的重写。

    此方法对我有用,因为我还需要提供对旧文件夹的访问权限。您可能需要根据环境的随意变化来选择一些选项。有几种方法可以做到这一点,例如禁用重写、允许 dir 访问、显示详细信息等,所以此时我无法为您提供 sn-p。

    【讨论】:

    • 感谢您的帮助,Datamafia!
    猜你喜欢
    • 2020-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多