htaccess .zip URL переписать из /*.zip в /key/*.zip [дубликат]

В настоящее время у меня есть некоторые zip-файлы, хранящиеся в корне http моего веб-сервера php / apache.

В настоящее время я могу получить доступ к файлам, используя следующее:

http://example.com/filename.zip

Однако я хочу «защитить» доступ к этим файлам, и они должны быть доступны только с помощью чего-то вроде:

http://example.com/key/filename.zip

Может ли кто-нибудь помочь мне создать перезапись Как это сделать?

Ключ - это фиксированная строка. Он будет жестко прописан в правилах .htaccess .


Когда пользователь обращается к следующему URL-адресу:

http://example.com/key/filename.zip

Он должен иметь возможность загрузить zip-файл.


Когда пользователь обращается к следующему URL-адресу:

http://example.com/filename.zip

Он не должен иметь возможность загрузить zip-файл. Он должен получить сообщение об ошибке http.


Мой код на данный момент:

RewriteEngine on
RewriteRule ^key/(\w+).zip $1.zip
0
задан 25 September 2017 в 19:21
1 ответ

كودك الحالي يجب أن يخدم بالفعل /filename.zip عند الوصول إلى /key/filename.zip (على الرغم من أنه يجب أن يكون مرتبًا قليلاً).

لحظر الطلبات المباشرة إلى /filename.zip ، يمكنك القيام بشيء مثل التالي قبل التوجيه الحالي:

RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteRule ^/?\w+\.zip$ - [F]

هذه المجموعات (403 محظور) جميع الطلبات المباشرة لـ عناوين URL من النموذج /filename.zip (في جذر المستند) ، بغض النظر عما إذا كان يتم تعيينه إلى ملف موجود أم لا.

بدلاً من ذلك ، لإرسال 404 بدلاً من ذلك ، قم بتغيير F إشارة إلى R = 404 .

لذلك ، باختصار:

RewriteEngine On

# Block direct requests to /<filename>.zip
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteRule ^/?\w+\.zip$ - [R=404]

# Internally rewrite /key/<filename>.zip to /<filename>.zip
RewriteRule ^/?key/(\w+)\.zip /$1.zip [L]

تذكر أن الخط المائل العكسي يهرب من النقطة لمطابقة نقطة حرفية.

لاحظ أن هذا يعيد كتابة جميع طلبات / key / .zip إلى / .zip ، بغض النظر عما إذا كان / .zip موجودًا أم لا. ستحصل فقط على 404 إذا لم يحدث ذلك.

قد تكون علامة L مطلوبة إذا كان لديك توجيهات أخرى تتبع.

لقد قمت بتعديل التوجيهات حتى تعمل في تهيئة الخادم (وكذلك .htaccess ).

0
ответ дан 5 December 2019 в 07:26

Теги

Похожие вопросы