Довольно постоянные ссылки не работают - WordPress с Tomcat - PullRequest
0 голосов
/ 16 февраля 2019

Благодаря чьим-то странным требованиям мне удалось обслуживать WordPress с Tomcat 9. Все отлично работает с помощью PHP / Java Bridge .
Однако я не могу следовать ни одномуссылки с домашней страницы, когда в WordPress включены красивые постоянные ссылки (при нажатии на ссылки отображается «Не указан входной файл», хотя простые URL-адреса работают нормально).Я думаю, что проблема заключается в том, чтобы переписать URL.

Следуя документации Tomcat для перезаписи URL, я создал context.xml и rewrite.config в каталоге WEB-INF моего веб-приложения, но все равно не повезло.Вот файлы:

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]

Любая помощь очень ценится.

1 Ответ

0 голосов
/ 18 февраля 2019

Я использовал Tuckey UrlRewriteFilter и удалил ROOT/WEB-INF/context.xml и ROOT/WEB-INF/rewrite.config.Теперь Tomcat отлично обслуживает WordPress, и все работает отлично.

Вот шаги по настройке UrlRewriteFilter (взяты с официального сайта) для WordPress на Tomcat, что может быть кому-нибудь полезно:

Загрузка UrlRewriteFilter.jar в ROOT/WEB-INF/lib/и следуйте всем инструкциям / шагам на своем официальном сайте.Если вы хотите использовать синтаксис .htaccess для определения правил перезаписи, вы можете установить для параметра modRewriteConf значение true в ROOT/WEB-INF/web.xml, как показано ниже:

<!-- 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>

Затем создайте файл .htaccess в ROOT/WEB-INF/ каталог (можно разместить в другом месте, но затем вы должны указать путь через параметр в web.xml).

Примечание : мне пришлось закомментировать RewriteRule, чтобы сделать егоработать успешно

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