htaccess для удаления .php и переписать проблемы с URL - PullRequest
2 голосов
/ 21 октября 2011

Так что, если у меня есть следующий URL:

www.mydomain.com/parser.php?id=19127axbj1

как я могу использовать htcaccess, чтобы сделать его как

www.mydomain.com/19127axbj1

это возможно? Я вижу, что у капли есть http://drbl.in/caYS, так что мне было интересно что-то подобное.

Ответы [ 3 ]

1 голос
/ 21 октября 2011

Возможно.

RewriteRule ^(.*)$ /parser.php?id=$1 [L]
0 голосов
/ 21 октября 2011

Вы можете использовать это правило:

RewriteRule .* /parser.php?id=$0

, чтобы изменить "www.example.com/wh независимо" на "www.example.com/parser.php?id=whwhat"

Тем не менее, это все же позволяет вам посещать «/parser.php» напрямую, не создавая иллюзий маскируемого URL.Чтобы избежать этого, вам нужно перенаправить с помощью php-кода:

if (strpos($_SERVER['REQUEST_URI'], "parser.php") !== false) {
   header("Location: /$_REQUEST[id]", true, 303);
   exit;
}
0 голосов
/ 21 октября 2011

Часто RewriteRules скажет «отправлять запросы в этот другой файл, если запрошенный файл не существует».Пример:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /parser.php [L]

Затем вы найдете первоначально запрошенный путь с ... $_SERVER['PATH_INFO']?

Это предотвращает такие вещи, как рекурсивные запросы, и позволяет вам иметь "красивые" URL безнарушение прямого доступа к файлу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...