عليك في بعض الأحيان تريد فقط لمنع الوصول إلى معظم الملفات في الدليل ، ولكن ربما تتيح الوصول إلى الملفات واحد أو اثنين ، أو أنواع الملفات وسهلة..
كلما كنت تستخدم mod_rewrite (من جانب أباتشي أن تفعل كل هذا السحر) ، ما عليك القيام به..
كود HTML:
Options +FollowSymlinks
RewriteEngine on
إعادة كتابة بسيطة
ببساطة اباتشي عنوان بمسح جميع الطلبات الواردة والشيكات لدينا مباريات. htaccess الملف ويعيد كتابة عناوين المواقع مطابقة لتلك التي ما كنا التحديد. شيء مثل هذا..
كود HTML:
Options +FollowSymlinks
RewriteEngine on
RewriteRule ^(.*)\.htm$ $1.php [NC]
سهل لتحديث موقع أي شخص من ساكنة htm (يمكنك استخدامها. هتمل او. htm (.*)،. htm؟ ، الخ) على صفحات ديناميكية php ؛ الطلبات القديمة تلقائيا إعادة كتابة صفحة جديدة لعناوين المواقع. لم يلاحظ أحد شيئا ، والزوار ومحركات البحث ويمكن الحصول على المحتوى الخاص بك في اي من الاتجاهين. ترك الحكم ؛ إضافيا المكافأة ، وهذا يمكننا من السهل تقسيم شفرة php وشملت هتمل هياكل إلى دولتين منفصلتين صورة ، جميلة الفكرة ، واستكمال تحرير يجعل نسيم. [NC] في نهاية الجزء يعني "بأي حال من الأحوال" ، أو "حالة غير حساسة" ؛ أكثر على مفاتيح ، في وقت لاحق.
ويمكن ربط الناس whatever.htm أو whatever.php ، ولكنها دائما whatever.php في المتصفح ، وحتى لو كانت هذه الأعمال whatever.htm غير موجود! لكني الضالة..
كما هو عليه ، وانها صعبة بعض الشيء ؛ اهل سيظل whatever.htm في شريط عنوان المتصفح ، وسيظل الحفاظ على ارتباطك القديمة. htm العنوان. محركات البحث ، أيضا ، وسيبقي على فهرسة الروابط الخاصة بك. htm ، حتى أن البعض منهم أن تخدم حتى نفس المضمون من مكانين مختلفين يمكن لك يعاقب عليها محركات البحث. هذا قد يكون أو لا يزعجك ، ولكن إذا فعلت ذلك ، يمكن أن يفعله mod_rewrite بعض السحر..
كود HTML:
Options +FollowSymlinks
RewriteEngine on
RewriteRule ^(.+)\.htm$ http://corz.org/$1.php [R,NC]
هذه المرة نحن يوعز mod_rewrite لمناسبة اعادة كتابة الخارجي ، المعروف أيضا باسم "إعادة توجيه". الآن ، بدلا من مجرد إعادة كتابة الخلفية ذبابة على ذلك ، متصفح المستخدم فعليا توجيه جديد لاوري ، وwhatever.php يظهر في شريط العنوان على المتصفح -- محركات البحث وغيرها من الكيانات spidering تلقائيا تحديث وصلات ل. php النسخ ؛ يفوز الجميع. يمكنك أن تأخذ وقتك مع التحديث ، أيضا.
ملاحظة : إذا كنت تستخدم [س] وحده ، التخلف عن الدفع لإرسال النص المتشعب "نقل مؤقتا" إعادة توجيه ، ويعرف أيضا باسم "302". ولكن يمكنك ارسال مدونات أخرى ، مثل ذلك..
كود HTML:
RewriteRule ^(.+)\.htm$ http://corz.org/$1.php [R=302,NC]
ليست بهذه البساطة... إعادة كتابة شقة وصلات
ربما لاحظتم الأمثلة أعلاه استخدام التعبير العادية لمواكبة المتغيرات. يعني ببساطة أن ما هو.. مباراة من جانب الداخل (+) واستخدامها لبناء "$ 1" في عنوان جديد. وبعبارة أخرى ، (+) = 1 دولار عملتم المتعددة (+) ولكل أجزاء ، mod_rewrite تلقائيا يخلق مطابقة مبلغ 1 ، 2 دولار ، ومبلغ 3 ، الخ ، والتي تستهدفها (aka. 'استبدال') عنوان. هذا المرفق يمكننا القيام بكل أنواع الحيل ، والأكثر شيوعا من بين هؤلاء ، هو إنشاء "علاقات ثابتة"..
حتى لطيف ، مثل وصلة قصيرة
http://mysite/grab؟file=my.zip قبيحة للغاية بالنسبة لبعض الناس ، وليس أقل من الحقيقي للمدرسة القديمة والصلبة الملك / الطريق / شقة / ربط ستفعل. لحسن الحظ ، mod_rewrite يجعل من السهل تحويل عناوين المواقع مع استفسار الاوتار ومتغيرات متعددة الى هذا بالضبط ، شيء من هذا القبيل..
كود HTML:
Options +FollowSymlinks
RewriteEngine on
RewriteRule ^files/([^/]+)/([^/]+).zip /download.php?section=$1&file=$2 [NC]
وأنا شخصيا أشعر أن محركات البحث التي ينبغي أن نسعى جاهدين لمواكبة التقنيات الحديثة على الشبكة العالمية ، وبعبارة أخرى ، إننا لا ينبغي أن يكون لالبكم أسفل لهم. ولكن هذا مجرد رأيي. الكثير من المستخدمين يفضلون / صورة / العاب / hoopy.zip ل/ download.php؟ قسم الألعاب & = = ملف hoopy ولكن لا مانع لدي في أي من الاتجاهين. كما أشار أحدهم لي مؤخرا ، وعرض الروابط وفقا لمعايير / شقة / مسارات يعني أنك أقل احتمالا للحصول على الاهالي القيام الأخطاء المطبعية في العنوان المطبوع ، حتى شيئا من هذا القبيل..
كود HTML:
Options +FollowSymlinks
RewriteEngine on
RewriteRule ^blog/([0-9]+)-([a-z]+) http://corz.org/blog/index.php?archive=$1-$2 [NC]
اختصار عناوين المواقع
عام واحد هو استخدام mod_rewrite لاختصار العنوان. أقصر عنوان 'sأسهل أن نتذكر ، وبطبيعة الحال ، إلى نوع من الأسهل. على سبيل المثال..
حذار العادية التعبير :
كود HTML:
Options +FollowSymlinks
RewriteEngine On
RewriteRule ^grab /public/files/download/download.php
في المثال التالي ، RewriteCond البيان ان عمليات تفتيش عبارة ديه مجموعة متنوعة فو ، ويجسد قيمته في حين انه هناك. وبعبارة أخرى ، إلا طلبات لل/ انتزاع التي المتغير فو المحددة ، سيتم إعادة كتابة ، وبينما نحن في ذلك ، سنقوم أيضا التحول فو ، بار ، فقط لأننا لا يمكن..
القبض على $ _GET متغير :
كود HTML:
Options +FollowSymlinks
RewriteEngine On
RewriteCond %{QUERY_STRING} foo=(.*)
RewriteRule ^grab(.*) /page.php?bar=%1
وهو يقول ، متصفح المستخدم سوف يزود page.php (بدون [س] في العلم RewriteRule ، شريط العنوان ستظل قراءة واغتصاب؟ فو = بار). المتغير شريط سيتاح للسيناريو الخاص بك ، مع تحديد قيمة لنقابة المحامين. هذا المتغير قد خلقت بطريقة سحرية ، ببساطة باستخدام العادية؟ في الهدف من RewriteRule ، ووضع علامات على القبض على أول backreference ، 1 ٪.. ؟ بار = 1 ٪
لاحظ كيف نستخدم ٪ الطابع ، لتحديد المتغيرات التي احتلتها في RewriteCond البيانات ، المعروف أيضا باسم "Backreferences". هذا هو بالضبط مثل التي تستخدم لتحديد 1 دولار وبلغ عدد backreferences أسر في RewriteRule الأنماط ، باستثناء القبض على الاوتار داخل RewriteCond البيان ، نستخدم ٪ بدلا من دولار. بسيطة.
يمكنك استخدام [QSA] في العلم وبالإضافة إلى هذه عبارة التلاعب ، ودمجها. في المثال التالي ، فإن قيمة دليل فو يصبح هدفا في العنوان ، والمتغير الملف سحرية من أجلها. الأصلي عبارة المعلمة ثم يعود الى نهاية الامر كله..
QSA الإسراف!
كود HTML:
Options +FollowSymlinks
RewriteEngine On
RewriteCond %{QUERY_STRING} foo=(.+)
RewriteRule ^grab/(.*) /%1/index.php?file=$1 [QSA]
تبعا لحاجاتك ، وحتى يمكن استخدام وصلات ثابتة وديناميكية المتغيرات معا ، شيئا مثل هذا يمكن أن يكون مفيدا..
الاختلاط ودينامية الروابط شقة في احد ruleset..
كود HTML:
Options +FollowSymlinks
RewriteEngine On
RewriteCond %{QUERY_STRING} version=(.+)
RewriteRule ^grab/([^/]+)/(.*) /%1/index.php?section=$1&file=$2 [QSA]
من جانب الطريق ، ويمكنك بسهولة أن تفعل العكس ، وتجريد استفسار سلسلة من العنوان ، وبمجرد وضع؟ الحق في ختام أعمال taget. هذا المثال تفعل ذلك تماما ، في حين ترك الفعلية اوري سليمة..
عرض فقط!
كود HTML:
Options +FollowSymlinks
RewriteEngine On
RewriteCond %{QUERY_STRING} .
RewriteRule foo.php(.*) /foo.php? [L]
ونفى وصول برودة
في الجزء الأول أنني أظهرت انخفاضا بسيطا بين القتلى آلية لمنع الوصول إلى الملفات والمجلدات على وجه الخصوص. المشكلة أن هذه هي الطريقة التي يحصل مستخدمينا 403 "رفض الوصول" خطأ الذي يشبه وجود باب انتقد في وجهك. لحسن الحظ ، تأتي mod_rewrite لانقاذ من جديد ، ويمكننا أن تفعل أشياء أقل إيلاما. طريقة واحدة ودائما ما تستخدم لإعادة توجيه المستخدمين إلى المجلد المحتوي..
ذهبوا "هوه؟ ahhh..!"
كود HTML:
# send them up!
Options +FollowSymlinks
RewriteEngine on
RewriteRule ^(.*)$ ../ [NC]
It works great, though it can be a wee bit tricky with the URLs, and you may prefer to use a harder location, which avoids potential issues in indexed directories, where folks can get in a loop..
they go damn! Oh!
كود HTML:
# send them exactly there!
Options +FollowSymlinks
RewriteEngine on
RewriteRule ^(.*)$ /comms/hardware/router/ [NC]
Sometimes you'll only want to deny access to
most of the files in the directory, but allow access to maybe one or two files, or file types, easy..
deny with style!
كود HTML:
# users can load only "special.zip", and the css and js files.
Options +FollowSymlinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !^(.+)\.css$
RewriteCond %{REQUEST_FILENAME} !^(.+)\.js$
RewriteCond %{REQUEST_FILENAME} !special.zip$
RewriteRule ^(.+)$ /chat/ [NC]
هنا نأخذ الامر كله إلى مرحلة أخرى. ويمكن للمستخدمين الوصول. المغلق (stylesheet (جافا سكريبت والملفات من دون مشكلة ، وكذلك ملف "special.zip" ، ولكن أي طلبات للحصول على filetypes العودة فورا الى توجيه الرئيسي "/ دردشة /" الدليل. كما يمكنك إضافة العديد من أنواع ما تحتاج إليه. يمكنك أيضا فإن حزمة filetypes باستخدام خط واحد | (أو) اللغوي ، على الرغم من الخطوط الفردية وربما وضوحا.
هنا في الوقت الراهن هو ما الطهي داخل بلادي / المؤتمر الوطني العراقي / دليل..
الكل في واحد السيطرة.
كود HTML:
RewriteEngine on
Options +FollowSymlinks
# allow access with no restrictions to local machine at 192.168.1.3
RewriteCond %{REMOTE_ADDR} !192.168.1.3
# allow access to all .css and .js in sub-directories..
RewriteCond %{REQUEST_URI} !\.css$
RewriteCond %{REQUEST_URI} !\.js$
# allow access to the files inside img/, but not a directory listing..
RewriteCond %{REQUEST_URI} !img/(.*)\.
# allow access to these particular files...
RewriteCond %{REQUEST_URI} !comments.php$
RewriteCond %{REQUEST_URI} !corzmail.php$
RewriteCond %{REQUEST_URI} !digitrack.php$
RewriteCond %{REQUEST_URI} !gd-verify.php$
RewriteCond %{REQUEST_URI} !post-dumper.php$
RewriteCond %{REQUEST_URI} !print.php$
RewriteCond %{REQUEST_URI} !source-dump.php$
RewriteCond %{REQUEST_URI} !textview.php$
RewriteRule ^(.*)$ / [R,NC,L]
الأساسية صيغة موحدة ومن ثم إذا بين منطق : إذا كان الطلب يستوفي شرط معين ، ثم إعادة كتابة الطلب. "الشروط" يمكن أن تكون أشياء كثيرة ، لعل الإحالات التي أرسلها برأسه على متصفح (الموقع أتوا) ، أو الصفحة التي طلبوها ، أو عبارة معينة المعلم ، أو نوع الزبون (المتصفح ، الخ) وهي وتستخدم ، أو أي معلومة اباتشي يعلق على هذا الطلب. إليك أحد الأمثلة التي تحول دون الحصول على "أن المحطة برو" ، وهو مدير التحميل والتي من المعروف مص ، بجد..
الذين يحتاجون 'sنسخة محلية ، عندما أنا هنا؟..
كود HTML:
RewriteCond %{HTTP_USER_AGENT} ^Teleport\ Pro [NC]
RewriteRule . abuse.txt [L]
It's your site, and just like your home, you have every right to exert some control over who gets in. You may have a
huge list of user agents you'd rather not have eating your bandwidth; so use the [OR] flag, and
line 'em up..
A little garlic for the net vampires..
كود HTML:
RewriteCond %{HTTP_USER_AGENT} ^BackWeb [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^Bandit [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^BatchFTP [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^BecomeBot [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^BlackWidow [NC,OR]
# etc..
RewriteCond %{HTTP_USER_AGENT} ^Net\ Vampire [NC]
RewriteRule . abuse.txt [L]
This forms the basis of what often becomes a HUGE list of ban-lines. Remember, we aren't limited to user agent strings..
Suckers, h4x0rz, kiddies, cross-site scripters and more.. Bye now!
كود HTML:
# why not come visit me directly?
RewriteCond %{HTTP_REFERER} \.opendirviewer\. [NC,OR]
# this prevents stoopid cross-site discovery attacks..
RewriteCond %{THE_REQUEST} \?\ HTTP/ [NC,OR]
# please stop pretending to be the Googlebot..
RewriteCond %{HTTP_REFERER} users\.skynet\.be.* [NC,OR]
# really, we need a special page for these twats..
RewriteCond %{QUERY_STRING} \=\|w\| [NC,OR]
RewriteCond %{THE_REQUEST} etc/passwd [NC,OR]
RewriteCond %{REQUEST_URI} owssvr\.dll [NC,OR]
# you can probably work these out..
RewriteCond %{QUERY_STRING} \=\|w\| [NC,OR]
RewriteCond %{THE_REQUEST} \/\*\ HTTP/ [NC,OR]
# etc..
RewriteCond %{HTTP_USER_AGENT} Sucker [NC]
RewriteRule . abuse.txt [L]
prevent hot-linking
Believe it or not, there are some webmasters who, rather than coming up with their own content will
steal yours. Really! Even worse, they won't even bother to copy to their own server to serve it up, they'll just
link to your content! no, it's true, in fact, it used to be incredibly common. These days most people like to prevent this sort of thing, and .htaccess is one of the best ways to do it.
This is one of those directives where the mileage variables are at their limits, but something like this works fine for me..
how DARE they!
كود HTML:
Options +FollowSymlinks
# no hot-linking
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?corz\.org/ [NC]
RewriteRule .*\.(gif|jpg|png)$ http://corz.org/img/hotlink.png [NC]
lose the "www
"تفقد "الشبكة العالمية"
أنا كثيرا ما تساءلت عن كيفية منع الأول "شبكة الاتصالات العالمية" الجزء تظهر في موقعي ، لذلك أعتقد وأود أن أضيف شيئا عن ذلك. باختصار ، إذا قام شخص ما من أنواع http://www.corz.org/ ضمن المتصفح (أو تستخدم شبكة الاتصالات العالمية جزءا في أي صلة لcorz.org) هو إعادة توجيهها إلى السهل ، إلى حد ما نظيفة http://corz.org/ نسخة. هذا سهل جدا لتحقيق مثل هذا..
حذار العادية التعبير :
:
كود HTML:
Options +FollowSymlinks
RewriteEngine on
RewriteCond %{http_host} ^www\.corz\.org [NC]
RewriteRule ^(.*)$ http://corz.org/$1 [R=301,NC]
أنت لا تحتاج إلى عبقرية تأثرت لنرى ما يحدث هنا. هناك طرق أخرى يمكن أن يكتب لهذه القاعدة ، ولكن مرة أخرى ، على أفضل وجه البسيطة. شأنها في ذلك شأن معظم الأمثلة من هنا ، ما سبق هو لصق مباشرة من بلدي الرئيسية. htaccess الملف ، لذلك يمكنك التأكد من أنها تعمل تماما. في الواقع ، أنا مؤخرا بتحديث ذلك كي أتمكن من نصيب قواعد ديف مرآة بين بلدي والعيش دون أي موقع. htaccess التحرير..
إذا كنت في موقف مؤسف بعد مواقعك العيش على استضافة هذا لا يدعم العديد من المجالات ، قد تضطر الى قائمة خاصة بك. htaccess وmod_rewrite. ما دام الدليل المادي الخاص بك هيكل مدروسة جيدا ، وهذا إلى حد بسيط لتحقيقه.
على سبيل المثال ، دعنا نقول لدينا اثنين من المجالات ، مشيرا الى واحد التي تستضيفها الجذرية ؛ one.com المواقع والمواقع two.com. في جذر ملقم الويب ، ونحن ببساطة خلق مجلد عن كل مجال ، وربما واحد / ، وهما / الرئيسي في ذلك الحين (الجذر). htaccess ، وإعادة كتابة جميع الطلبات الواردة ، وعلى هذا النحو..
جميع الطلبات التي لم يسبق إعادة كتابة هذه الملفات ، وإعادة كتابة شفافية..
إذا كنت لا تقرأ الانجليزية ، أو بعض ضيوفك لا اليك تكتنف طريقة لالرائع مترجم جوجل تقدم التلقائي ذبابة على ترجمة لصفحات موقعك. شيء مثل هذا..
انها مجرد رمز البلد يضيفوا إلى نهاية العلاقة ، أو لديك..
حين جئت الى هنا ، قليلا ذات الصلة ؛ إذا كنت غير الناطقة بالإنكليزية ، علما ، يمكنك القيام بشيء مشابه المتصفح إلى جنب ، وخلق "bookmarklet" (منتظم المرجعية ، إلا أنه "لا شيء") ، باستخدام هذه مدونة لموقع..
نفس الشيء ، إلا متصفح جنب..
الميراث..
إذا كنت تقوم بإنشاء قواعد المجلدات الفرعية في موقعك ، عليك أن تقرأ هذه.
عليك أن تتذكر كيف مجلدات كبار في قواعد تنطبق على جميع المجلدات داخل تلك المجلدات أيضا. ونحن نسمي هذا "الميراث". وعادة ما يعمل هذا فقط. ولكن إذا كنت بدء إنشاء قواعد أخرى داخل المجلدات الفرعية لك ، في الواقع ، وطمس قواعد تطبق على هذا المجلد بسبب الإرث ، أو "decendancy" ، وإذا كنت تفضل ذلك. ليست كل القواعد التي تطبق فقط على أن subfolder. أ وي مظاهرة..
لنفترض أنني في بلدي القاعدة الرئيسية /. htaccess الذي توجيه طلبات للحصول على الملفات المنتهية. htm ل. php يعادل ، على غرار مثال على رأس هذه الصفحة. الآن ، إذا كان لأي سبب من الأسباب ، لا بد لي أن أضيف بعض القواعد لإعادة كتابة بلادي / osx /.htaccess الملف ،. htm>>. php إعادة توجيه لن يعمل ل/ osx / subfolder ، أنا بحاجة لإعادة ذلك ، ولكن مع فارق حاسم..
وتعمل هذه الغرامة ، وعلى مستوى الموقع ، في رسالتي الرئيسية. htaccess الملف
اعادة كتابة قطع الأشجار..
عندما تصبح الامور غير والعمل ، قد ترغب في اعادة كتابة لتمكين قطع الأشجار. سوف نفترض انك اختبار mod_rewrite هذه التوجيهات على وضع مرآة ، أو ما شابه ذلك الإعداد ، ويمكن الوصول إلى الملف الرئيسي httpd.conf. لم يكن الأمر كذلك ، فما هو السبب؟ mod_rewrite اختبار قواعد العيش على النطاق وليس على وجه الدقة المثالية ، أليس كذلك؟ على أية حال ، هذا ما وضعت في أسفل http.conf الخاص بك..
ويتوقع دخول الملفات الكبيرة..
مواقع النشر (المفضلة)