كيف يمكنني استخدام mod_rewrite لتغيير المسار واسم الملف لعنوان URL
-
01-07-2019 - |
سؤال
أريد أن آخذ عنوان url:http://www.mydomain.com/signup-12345
وفعلا أعطهم:http://www.mydomain.com/signup/?aff=12345
ليس لدي تاريخ مع mod_rewrite، مساعدة!
المحلول
الشيء الذي وجدت صعوبة نسبية في اكتشافه هو كيفية القيام بعكس ما تفعله، حيث تحتاج إلى معرفة قيمة جزء من سلسلة الاستعلام.
لذلك على سبيل المثال:
إذا أردت إعادة كتابة عنوان URL:http://www.example.com/signup-قديم-النصي.asp?aff=12345
ل:http://www.example.com/signup-جديد-النصي.بي أتش بي?affID=12345
يمكنك استخدام:
RewriteCond %{query_string}& ^aff=((.+&)|&)$
RewriteRule ^/signup-old-script.asp$ /signup-new-script.php?affID=%2 [L,R]
لاحظ ال % قم بتسجيل الدخول إلى قاعدة إعادة الكتابة بدلاً من $ لافتة.
كان علي أن أفعل ذلك حتى أتمكن من دعم خرائط الفلاش القديمة في موقع جديد يحتوي على روابط لملفات ".cfm" ذات معرف في سلسلة الاستعلام.
نصائح أخرى
جرب هذا :
قاعدة إعادة الكتابة ^/signup-(\d+)/$ /signup/?aff=$1 [I]
على حد علمي،
تؤدي العلامة إلى تجاهل RewriteCond. - لـ "تجاهل حالة الأحرف" - من IsapiRewrite
الإصدار 2