【问题标题】:.htaccesss RewriteCond %{REQUEST_FILENAME} !-d does not work.htaccess RewriteCond %{REQUEST_FILENAME} !-d 不起作用
【发布时间】:2013-04-06 09:33:30
【问题描述】:

我想在子目录中安装 WordPress 并删除永久链接中的 index.php。 服务器是IIS 6.0,支持重写。 我的网络服务器有以下目录:

网络根
--wp [wordpress 文件夹]

webroot/.htaccess

RewriteCond %{HTTP_HOST} ^(www\.)?a.luckyet\.com$ [NC]
RewriteCond %{REQUEST_URI} !^/wp/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /wp/$1
RewriteCond %{HTTP_HOST} ^(www\.)?a.luckyet\.com$ [NC]
RewriteRule ^(/)?$ wp/

webroot/wp/.htaccess

RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-f #1
RewriteCond %{REQUEST_FILENAME} !-d #2
RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L] #3

当我访问 a.luckyet.coma.luckyet.com/hello-world.html 时它可以工作 但是当我访问 a.luckyet.com/wp-login.phpa.luckyet.com/wp-admin

时它不起作用

#3 工作正常,但#1 和#2 不能正常工作。然后看到here,把webroot/wp/.htaccess的内容改成:

RewriteEngine on 
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME} !-f
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]

它仍然没有生效。谁能帮我?提前致谢!

更新:

ISAPI_Rewrite 版本是 3.0。

webroot/.htaccess中的所有代码:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www\.)?a.luckyet\.com$ [NC]
RewriteCond %{REQUEST_URI} !^/wp/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /wp/$1
RewriteCond %{HTTP_HOST} ^(www\.)?a.luckyet\.com$ [NC]
RewriteRule ^(/)?$ wp/

webroot/wp/.htaccess中的所有代码:

RewriteEngine on 
# For file-based wordpress content (i.e. theme), admin, etc.
RewriteRule wp-(.*) wp-$1 [L]
# For normal wordpress content, via index.php
RewriteRule ^/$ index.php [L]
RewriteCond %{REQUEST_FILENAME} !-f #1
RewriteCond %{REQUEST_FILENAME} !-d #2
RewriteRule (.*) index.php/$1 [L]

Wordpress 固定链接是:

/%postname%.html

因此,访问http://a.luckyet.com/http://a.luckyet.com/hello-world.html 时,Wordpress 可以正常工作

问题:

如果webroot/wp/中有真实文件如a.html,如webroot/wp/a.html,访问时会报wordpress 404错误http://a.luckyet.com/a.html, .我该如何解决这个问题?

【问题讨论】:

  • 应该是RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-f!-d。您使用的是什么 ISAPI_Rewrite 版本?
  • 谢谢,但还是不行。 ISAPI_Rewrite版本我也不知道,是我买的虚拟主机。
  • 我更新了问题,有什么办法可以解决这个问题吗?
  • 您问题中的所有ISAPI 3 服务器变量和指令似乎都与Apache 兼容,因此兼容性不是问题。我在 wp 目录的 .htacces 文件中看到了几块规则,但没有指示每个规则在文件中的位置。也许您可以将完整的 .htaccess 文件内容而不是实际块复制并粘贴到您的问题中,以便更好地理解整个代码。
  • 我更新了,谢谢你的帮助!

标签: wordpress .htaccess permalinks


【解决方案1】:

您正在使用 .htaccess 文件和 WordPress 设置动态重写 URL,以添加 .html 扩展名 - 任何“真实”的 .html 文件都由 IIS 处理程序映射在上游处理。

您必须在 IIS 中为 .html 文件更新处理程序映射,尤其是将请求直接定向到物理文件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-18
    • 1970-01-01
    • 1970-01-01
    • 2015-01-27
    • 2014-06-24
    • 1970-01-01
    相关资源
    最近更新 更多