سؤال

ويمكن لأي شخص أن يفسر ما تقوم به هذه القاعدة mod_rewrite و؟

وأنا أحاول أن أعلق الملف، ولكن يبدو أن الرمز إلى القول عكس ما اعتقد انه يفعل

# Enable rewriting of URLs
RewriteEngine on


# Allow specified file types to be accessed
# Thing to test = URL
# Condition = not starting with  
RewriteCond $1 !^(index\.php|images|css|js|robots\.txt)


# RewriteRule will only be performed if the preceeding RewriteCond is fulfilled
# Remove index.php from all URLs     
# Pattern = anything (0 or more of any character)
# Substitution = index.php + the rest of the URL    
RewriteRule ^(.*)$ /index.php/$1 [L]  
هل كانت مفيدة؟

المحلول

^ = begin of line
( = begin group
.* = any character, any number of times
) = end group

ويتم استبدال 1 $ في الجزء الثاني من المجموعة في الجزء الأول.

هل هذا الحكم في symfony؟ والفكرة هي لتمرير سلسلة الاستعلام كاملة للindex.php (وحدة تحكم الأمامي) كمعلمة، بحيث تحكم الأمامي يمكن تحليل والطريق عليه.

نصائح أخرى

والمتصفح بإرسال طلب إلى الخادم (اباتشي، منذ كنت تستخدم mod_rewrite و):

وGET الشخصية / تحرير

وأباتشي يقبل هذا الطلب، ويرى في ملفات التكوين الخاصة به بعد أن كنت قد تكوينه لتمرير جميع الطلبات عن طريق mod_rewrite و. لذا، فإنه يرسل سلسلة 'الشخصية / تحرير' لmod_rewrite و. ثم يطبق mod_rewrite والقواعد التي المحدد لذلك، والتي ثم يحول الطلب (في الطريق شرحت في رسالتي السابقة) إلى ال index.php / ملف / تحرير '. بعد أن يتم mod_rewrite و، تواصل أباتشي معالجة الطلب، ويرى "أوه، هذا الرجل الذي طلب من index.php الملف '. لذلك يدعو مترجم فب الذي يوزع بعد ذلك وينفذ index.php - ويحصل '/ الشخصية / تحرير' كوسائط. رمز PHP (CI في قضيتك) بتوزيع هذه الحجج ويعرف كيفية استدعاء وحدة الصحيحة في التطبيق الخاص بك.

وذلك أساسا، انها وسيلة للاتصال دائما index.php، حتى عندما لا يحدد رابط index.php. وبهذه الطريقة، index.php يعمل كوحدة تحكم الأمامي: أنه بتوجيه كافة الطلبات إلى الموقع المناسب في التطبيق الخاص بك

.

إذا لا يبدأ URL مع index.php أو الصور أو المغلق أو شبيبة أو ملف robots.txt، مسبوقة السلسلة "/index.php/".

وكما index.php هو على الارجح التطبيق فب قابل للتنفيذ، وindex.php ثم يمكن قراءة بقية URL من بيئة CGI لها. (يتم تخزينها في $ {PATH_INFO})

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top