Apache - комбинированный вопрос новичка о переписывании модов и ограничении доступа к файлам по URL - PullRequest
1 голос
/ 01 июня 2011

это моя первая попытка переписать мод для URL и правила ограничения доступа к файлу. Я немного читал похожие посты в стеке и Google, но пока не смог получить полный ответ. Пока что вся исследовательская информация в Интернете, кажется, разбита на кусочки и всегда не содержит какой-то ключевой шаг.

Новичку, как я, очень трудно соединить точки, поэтому я обратился к гуру по адресу stackoverflow за какой-то помощью.

Я собираюсь перечислить все шаги, которые я предпринял до сих пор, так что, если кто-то может подсказать мне, что я сделал неправильно, я вечно благодарен. Возможно, мое пошаговое описание будет полезно для тех, кто ищет такой же ответ в будущем.

Конфигурация Apache

1) Раскомментируйте строку LoadModule rewrite_module modules/mod_rewrite.so в папке httpd.conf file @conf.

2) Проверено, что mod_rewrite загружен путем отображения подробных сведений о php с помощью функции phpinfo () и поиска строки «mod_rewrite».

Чего я хочу достичь

[URL Rewrite]

**from** : www.domain.com/listing.php?
           category=men+casual+pant&title=blue+office+pant&item_ID=123

**to** : www.domain.com/category/men/casual/pant/blue-office-pant_123.html

[Ограничить прямой доступ для следующего файла]

**restrict file** /htdocs/bg_addEditItem.php from direct URL access typing

Что я сделал до сих пор, но ничего не работает

1) Создает файл .htaccess и помещает его в папку / htdocs со следующим содержимым

Options +FollowSymlinks
RewriteEngine on
RewriteRule ^category/$1/$2/$3/$4-$5-$6_$7 listing.php?&category=([a-z]+)-([a-z]+)-([a-z]+)&title=([a-z]+)+([a-z]+)+([a-z]+)item_ID=([0-9]+)

2) В настоящее время я использую комбинацию session_id и HTTP-реферера, чтобы запретить прямой доступ к файлу bg_addEditItem.php, но я думаю, что должен быть более простой метод, который помещает все защищенные файлы в папку и устанавливает другой .htaccess файл. Может кто-нибудь показать, пожалуйста, как это делается? Мой метод доступа к этому файлу из поста формы.

Большое спасибо.

1 Ответ

2 голосов
/ 01 июня 2011
RewriteCond %{QUERY_STRING} ^category=(.*)+(.*)+(.*)&title=(.*)+(.*)+(.*)&itemID=(.*)$
RewriteRule ^$ ^category/%1/%2/%3/%4-%5-%6_%7.html [L]

Для вашей второй части

RewriteCond %{HTTP_REFERRER} !^http://(www\.)?yourdomain.com/(.*)$
RewriteRule ^/protectedfolder/(.*) - [R=404]  [L]/* Apache will check if url points to your protected folder and if yes , it will check above condition . Above condition will see if the referrer is from you site , if not it will pass and 404 will be returned to user.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...