Отслеживание URL через.htaccess
Поэтому я прочитал материал о том, как apache mod_rewrite добивается цели, но он кажется слишком расплывчатым для начинающих, как я.
скажем, я хотел замаскировать site.com/userpage.php на site.com/ или site.com/userpage
или даже удаление запросов на получение..
с site.com/userpage.php?query=yes на site.com/userpage.php или site.com/userpage
Как я могу сделать это, используя htaccess или даже другие методы?
Спасибо, парни
2 ответа
Во-первых, не забудьте поместить эту строку в свой .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.
Если вы не хотите добавлять запросы GET, почему бы не использовать POST?
Кроме того, вы можете использовать MultiViews, чтобы разрешить доступ к /userpage.php как / userpage.
Options Indexes FollowSymLinks Includes MultiViews
Как работает MultiViews, он проверит каталог с именем userpage, и если он не найдет ни одного, то он перейдет к файлу, просто в случае, если у вас есть каталог с именем userpage.