URL mod_rewrite не работает - PullRequest
       0

URL mod_rewrite не работает

0 голосов
/ 05 ноября 2011

Я создал две страницы

alice.php и bob.php

код для alice.php

<?php
echo "This is alice page";
?>

<form name="sdlflks" method="get" action="bob.php">
<input type="text" name="t1">
<input type="submit" name="submit">
</form>

код для bob.php

<?php
echo "This is bob page";
echo "<br>" . $_GET['t1'];
?>

Я набрал на странице Алисы как helloworld, затем он перенаправляет на bob.php в этом формате URL http://localhost/test1/bob.php?t1=helloworld&submit=Submit

скорее, я бы хотел выглядеть как

http://localhost/test1/bob.php/helloworld

или

http://localhost/test1/bob/helloworld

Я гуглил и некоторые статьи, отвечу здесь, но не смог получить эту.

А также создал .htacces.conf в том же каталоге, что и «test1»

In .htaccess.conf

я добавил этот эксперимент для mod_rewrite

RewriteRule ^([A-Za-z0-9-]+)/([A-Za-z0-9-]+)/?$ bob.php?t1=$1&submit=$2 [L]

Может кто-нибудь, дайте мне знать, кто я достиг этого. И куда мне добавить это выражение, в какую строку кода или в какой модуль мне нужно поместить это.

1 Ответ

1 голос
/ 05 ноября 2011

Используя только mod_rewrite, вы получите только:

http://localhost/test1/bob?t1=helloworld&submit=Submit

Это потому, что отправка HTML-формы происходит из браузера и по умолчанию добавляет параметры GET в виде пар, разделенных амперсандом.

Если вам действительно нужно, чтобы отправка формы завершилась по адресу:

http://localhost/test1/bob/helloworld

, есть 2 решения:

  • отправить с использованием javascript.Это означает, что вы перехватите отправку и просто отправите пользователя по указанному выше URL
  • отправьте нормально, а из вашего сценария php немедленно сделайте перенаправление на указанный выше URL, чтобы выполнить действие в «симпатичном» URL
...