Я надеюсь, что люди, не относящиеся к IIS, могут помочь мне в этом, хотя проблема, с которой я столкнулся, связана с сервером IIS6, на котором работает ISAPI_Rewriter.
Ситуация такова, что я использую Wordpress на IIS6, ISAPI_Rewriter используется для замены mod_rewrite и работает нормально. Моя проблема в том, что когда я получаю переписать мои URL для Wordpress (поэтому мне не нужно имя файла index.php), он показывает 404. После долгих поисков я обнаружил, что проблема была в том, что часть ASP.net ( или что-то подобное) добавлял eurl.axd / [random string] в конец 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]