2010-08-10 2 views
0

поэтому я читаю материал о том, как mod_rewrite от Apache делает трюк, но он кажется слишком расплывчатым для начинающих, таких как я.cloacking url через .htaccess

позволяет сказать, что я хотел, чтобы замаскировать site.com/userpage.php в site.com/ или site.com/userpage

или даже удаление запросов GET ..

из site.com/userpage.php?query=yes в site.com/userpage.php или site.com/userpage

как можно Я делаю это, используя htaccess или даже другие методы?

спасибо, ребята

ответ

0

Во-первых, помните, чтобы поставить эту строку в ваш .htaccess перед любыми переписывает:

RewriteEngine on 

Если вы хотите site.com/something для отображения site.com/something.php, если она существует без изменения URL, выполните следующие действия:

RewriteCond %{REQUEST_URI}.php -f 
RewriteRule .* %{REQUEST_URI}.php 

Это отобразит [файл, который вы запросили] .php, если он существует, пока отображается тот же URL, который вы указали. Если файл php не существует, он все равно даст вам 404, как и следовало бы. (Вот что такое -f.)

Невозможно полностью скрыть запросы GET. Вы можете избавиться от запросов GET, но тогда они не будут доступны для вашего скрипта, и нет смысла. Однако вы можете сделать это лучше. Например, если вы хотите site.com/userpage/item/30, чтобы отобразить содержимое site.com/userpage.php?item=30, вы можете сделать что-то вроде этого:

RewriteRule ^/userpage/item/(.*)$ userpage.php?item=$1 

Вы также мог бы заставить его работать с любым значением GET с помощью следующего правила:

RewriteRule ^/userpage/(.*)/(.*)$ userpage.php?$1=$2 

Таким образом, вы можете получить доступ к site.com/userpage.php?query=yes вместо site.com/userpage/query/yes. Это в значительной степени лучшее, что вы можете сделать; Значения GET должны поступать из URL-адреса, поэтому, если вы хотите, чтобы ваши входы полностью скрыты, вам придется использовать POST вместо этого.

0

Если вы не хотите добавлять запросы GET, то почему бы не использовать POST?

Кроме того, вы можете использовать MultiViews, чтобы разрешить доступ к /userpage.php как/пользовательскую страницу.

Options Indexes FollowSymLinks Includes MultiViews

Путь MultiViews работает он будет проверять каталог с именем userpage, и если он не находит, то он будет идти к файлу, только головки вверх в случае, если у вас есть каталог с именем userpage, а также ,

Смежные вопросы