漂亮的固定链接不起作用 - WordPress Tomcat

Pretty Permalinks not working - WordPress with Tomcat

感谢某人的奇怪要求,我设法用 Tomcat 9 为 WordPress 提供服务。在 PHP/Java Bridge.
的帮助下一切正常 但是,当在 WordPress 中启用漂亮的永久链接时,我无法从主页跟踪任何链接(当单击链接时它显示 "No input file specified",但普通的 URLs 工作正常)。我认为问题是重写URL。

继 Tomcat documentation 重写 URLs 之后,我在我的 webapp 的 WEB-INF 目录中创建了 context.xmlrewrite.config,但仍然没有运气。以下是文件:

ROOT/WEB-INF/context.xml

<?xml version="1.0" encoding="UTF-8"?>
<Context>
    <Valve className="org.apache.catalina.valves.rewrite.RewriteValve" />
</Context>

ROOT/WEB-INF/rewrite.config

RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

非常感谢任何帮助。

我最终使用了 Tuckey UrlRewriteFilter 并删除了 ROOT/WEB-INF/context.xmlROOT/WEB-INF/rewrite.config。现在 Tomcat 完美地为 WordPress 服务,一切正常。

以下是在 Tomcat 上为 WordPress 设置 UrlRewriteFilter(取自官方网站)的步骤,可能对某些人有用:

DownloadUrlRewriteFilter.jar进入ROOT/WEB-INF/lib/并关注官网所有instructions/steps。 如果你想使用 .htaccess 语法来定义重写规则,那么你可以在 ROOT/WEB-INF/web.xml 中将参数 modRewriteConf 设置为 true,如下所示:

<!-- URLRewriteFilter -->
<filter>
    <filter-name>UrlRewriteFilter</filter-name>
    <filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class>
    <init-param>
        <param-name>modRewriteConf</param-name>
        <param-value>true</param-value>
    </init-param>
</filter>
<filter-mapping>
    <filter-name>UrlRewriteFilter</filter-name>
    <url-pattern>/*</url-pattern>
    <dispatcher>REQUEST</dispatcher>
    <dispatcher>FORWARD</dispatcher>
</filter-mapping>

然后在 ROOT/WEB-INF/ 目录中创建一个 .htaccess 文件(可以放在其他地方,但是你必须通过 web.xml 中的参数指定路径)。

注意:我必须注释掉一个 RewriteRule 才能使其成功运行。

RewriteEngine On
RewriteBase /
# RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]