Назад | Перейти на главную страницу

Сделайте «перенаправление постоянным» приоритетом над mod_rewrite в .htaccess

Я организовал свой огромный .htaccess файл Перенаправление постоянное первый, который я хотел бы выполнить, если он будет найден. В этом случае я не хочу, чтобы позже обрабатывался mod_rewrite.

Есть ли способ добиться этого?

Примеры:

Redirect permanent /products/example.aspx http://www.example.com/products/example/

RewriteCond %{REQUEST_URI} products/([1-9a-zA-Z\s-]+)/
RewriteRule ^products/([0-9a-zA-Z\s-]+)/tutorials(/|\.php)$ /products/$1/help/ [R=permanent,L]

Хотя вышеупомянутое не конфликтует, мой файл .htaccess имеет размер 60 КБ, и есть несколько простых "перманентных перенаправлений", которые, кажется, игнорируются, потому что более поздние RewriteRules (которые, например, вместо этого перенаправляют шаблон)

Помещение операторов «Redirect» перед «RewriteRule» в файле .htaccess не означает, что они выполняются первыми. RewriteRules выполняются до директив Redirect и Alias. Они обрабатываются разными модулями, и сначала вызывается mod_rewrite. По этой причине я иногда использую перезапись, чтобы сократить все операторы псевдонима и перенаправления.

Я бы посоветовал не смешивать перенаправления и перезаписи, а преобразовать ваши перенаправления в перезаписи и добавить их в начало вашего списка или перезаписи.