3

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

webroot
--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-时它不起作用行政

#3 工作正常,但 #1 和 #2 不能正常工作。然后看到这里,把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 ,访问http://a.luckyet.com/a.html时会报wordpress 404错误,. 我该如何解决这个问题?

4

1 回答 1

0

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

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

于 2013-06-30T19:04:14.150 回答