Вопрос

Я надеюсь, что люди не IIS могут помочь мне на это, хотя этот вопрос, основанный на сервере IIS6, запущенного isapi_rewriter.

Ситуация заключается в том, что я работаю WordPress на IIS6, ISAPI_REWRITER используется для работы в качестве замены для MOD_REWRITE и функционирует правильно. Моя проблема в том, что когда я получаю его, чтобы переписать свои URL для WordPress (так что мне не нужен файл файла index.php в нем) он показывает 404. После многих поисков я нашел проблему, потому что часть ASP.NET Или что-то подобное) добавил EURL.AXD / [Случайную строку] к концу URL-адреса, и поэтому его подают в запрос WordPress и разбив его. Я установил шаблон WordPress для вывода запрошенного URL, и он выглядит что-то подобное:

http://www.example.com/index.php/about/eurl.axd/b552863f2d5e9841b5d8b79b44ac02e8/

Я полагаю, что это из-за постановления о поручении различных вещей в системе IIS, и виновник требуется для запуска другой части проекта. Я бы предпочел продолжать использовать isapi_rewriter для приятных URL, поэтому я хотел бы знать это:

Есть ли способ получить mod_rewrite для удаления eurl.axd / [string], прежде чем кормить его в систему?

Мой файл .htaccess в настоящее время появляется как таковой:

RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

# The following line excludes folders from rewriting
RewriteCond %{REQUEST_URI} !^/folder-name/

RewriteRule ^/(.*)$ /$1 [NC,L]

Спасибо за всю помощь, это всегда очень ценится.


Редактировать: отрегулировали мою HTACCESS на основе предложений, и, похоже, хорошо работает от кратких испытаний, которые я провел. Опубликовали его ниже.

RewriteEngine on
RewriteBase /

# This is used to strip ASP.net eurl.axd bits
# from the URL so wordpress can use permalinks


# For the root
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/wp-admin/
RewriteRule ^eurl\.axd/[0-9a-f]+/$ index.php [NC,L]


# For internal permalinks
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/wp-admin/
RewriteRule ^(.*)/eurl\.axd/[0-9a-f]+/$ index.php/$1 [NC,L]
Это было полезно?

Решение

Что-то вроде этого рядом с верхней частью вашего списка переписывания должно работать:

RewriteRule ^(.*)/eurl\.axd/[0-9a-f]+/$ /$1

Другие советы

Я использую следующее регулярное выражение как первый правило Ионики isapi Rewriter Для веб-сайтов работает на ASP.NET 4. на IIS 6. исправить проблемы, вызванные нарушение смены Введен с ASP.NET 4:

RewriteRule ^(.*)/eurl.axd/[a-f0-9]{32}(.*)$ $1$2

Это позвольте мне снова использовать URL-URL.

Обратите внимание, что вторая группа захватывает QueryString, если они присутствуют, и озадается его на переписанный URL.

И да, это особенность, а не ошибка.

Я бежал в аналогичную проблему с функцией расширения V4.0 ASP.NET меньше URL-адресов на II6 и нашел решение через провайдер модуля Rewrite ISAPI, то не требует отключения его. Лисьс и решение, когда мы испытали, это документировано здесь http://www.vanadiumtech.com/ourblog/post/2011/08/12/cause-of-eurlaxd.aspx.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top