ماذا تعني هذه التصريحات في ملف htaccess الخاص بي؟
-
03-07-2019 - |
سؤال
وأنا newb إلى PHP. يمكن لأحد أن يقول لي ما يفعله كل سطر هنا. هل أنا بحاجة إلى هذا؟ ذلك هو إعطائي أخطاء
RewriteCond %{REQUEST_URI} /~([^/]+)/?
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*) /~%1/rewrite.php?p=$1&%{QUERY_STRING} [L]
RewriteCond %{REQUEST_URI} /~([^/]+)/?
RewriteRule ^index\.php?(.*)$ /~%1/rewrite.php?p=%1&%{QUERY_STRING} [L]
#there is no ~ character in the URL
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*) ./rewrite.php?p=$1&%{QUERY_STRING} [L]
RewriteRule ^index\.php?(.*)$ ./rewrite.php?p=$1&%{QUERY_STRING} [L]
#WJ-180 fix
RewriteRule ^resume\.php?(.*)$ ./rewrite.php?p=resume\.php$1&%{QUERY_STRING} [L]
المحلول
والجواب بسيط: هذه التصريحات إعادة كتابة كل طلب إلى ملف rewrite.php
والجواب أكثر شمولا: إن RewriteCond
وRewriteRule
التوجيهات هي من أباتشي وحدة mod_rewrite و وتوفير آلية URL إعادة كتابة الحكم القائمة.
ويبدو أن الهدف من هذه القواعد لإعادة كتابة كل طلب إلى ملف rewrite.php
، إما في دليل معين (/~
<م> foobar م> /rewrite.php
) أو في الجذر (/rewrite.php
).
نصائح أخرى
إذا كنت جديدا، يرجى قراءة HTTP: //httpd.apache. غزاله / مستندات / 1.3 / وزارة الدفاع / mod_rewrite.html ، ويفسر ذلك بشكل جيد جدا.
p.s. م> العنوان الخاص بك "ماذا تعني هذه التصريحات في بلدي ملف هتكس PHP؟" غير صحيح، .htacces ليس ملف PHP.
وهذه تقول
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
و"فقط استخدام القاعدة التالية إذا لم تتطابق طلب ملف أو دليل موجود."
وهذه هي mod_rewrite و إدخالات التكوين.
ووقاعدة mod_rewrite وأباتشي. إلا إذا كنت تستخدم نوعا من إطار وربما كنت لا تحتاج إليها. انظر اباتشي mod_rewrite ولمزيد من المعلومات.