سؤال

لقد قمت بتغيير بنية الرابط الثابت الخاص بي في Wordpress من %year%/%months%/ إلى %postname%

لذلك قمت بإنشاء قواعد الاسم المستعار mod هذه في .htaccess ولكن لدي مشكلة:

RedirectMatch 301 /\d{4}/\d{2}/([^/]+)(/?)(.*)$ http://domainname.com/$1

تقوم القواعد أيضًا بإعادة توجيه الصور ضمن دليل محتوى wp، لذلك domainname.com/wp-content/uploads/2013/11/name.jpg يصبح domainname.com/name.jpg

لا أستطيع استخدام RewriteCond لأن RedirecMatch هذا هو mod_alias، أحاول استخدامه !^/(wp-content.*)$ ولكن لا يعمل.

كيف يمكنني حل؟هل من الأفضل استخدام RedirectMach أو RewriteRule (لم أغير الخادم)؟

هل يمكنك نشر أ ريكس أفضل?

شكرًا لك!

هل كانت مفيدة؟

المحلول

ربما ينبغي عليك الالتزام باستخدام mod_rewrite بدلاً من mod_alias لأنه سيتعارض مع قواعد mod_rewrite الخاصة بـ Wordpress.يؤثر كل من mod_rewrite وmod_alias على نفس معرف URI للطلب في نقاط مختلفة في مسار معالجة ملف URL، لذلك قد ينتهي بك الأمر إلى إعادة التوجيه وإعادة الكتابة في نفس الوقت.

RewriteCond %{REQUEST_URI} !\.(jpeg|gif|png)$ [NC]
RewriteRule ^\d{4}/\d{2}/([^/]+?)(/?)(.*)$ http://domainname.com/$1 [L,R=301]

نصائح أخرى

يحاول ^ و $:

RedirectMatch 301 ^/\d{4}/\d{2}/([^/]+)(/?)(.*)$ http://domainname.com/$1
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top