У меня есть страница php со следующей структурой ссылок:
http://localhost/wisper/businesspage.php?profile=creativeartbd
Поэтому я пытаюсь преобразовать эту ссылку в следующий стиль:
http://localhost/wisper/creativeartbd
Конфигурация .htaccess
RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-l RewriteRule ^businesspage/(.*?)/(.*)$/wisper/businesspage.php?profile=$1 [QSA,L]
Но не работает. Я думаю, что мой код неправильный, вы можете рассказать мне?
Спасибо.
Обновить:
Мой код страницы php приведен ниже:
echo "<h4><a href='businesspage.php?profile=$uname_d'>$uname_d</a></h4>";
Теперь он показывает эту ссылку:
http://localhost/wisper/businesspage.php?profile=creativeartbd
Поэтому я хочу показать эту ссылку так:
http://localhost/wisper/creativeartbd
Обновление 2:
while($res = mysql_fetch_array($sql)) { $mid = (int) $res['mid']; $uname_d = inputvalid($res['uname']); $profile_pic_d = inputvalid($res['profile_picture']); $mid = base64_encode($mid); echo "<div class='members'>"; //echo "<h4><a href='businesspage.php?profile=$uname_d'>$uname_d</a></h4>"; echo "<a href='/wisper/$uname_d'>$uname_d</a>"; ?> <img src="<?php echo "$upload_directory/$profile_pic_d"; ?>" width="99" height="100"/> <?php echo "</div>"; }
Вы делаете это неправильно, попробуйте это
RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-l RewriteBase / RewriteRule ^wisperpage/(.*?)$ wisper/businesspage.php?profile=$1 [QSA,L]
Вам нужно изменить первый сегмент uri, потому что переписывание wisper/creativeartbd
в wisper/businesspage.php?profile=$1
создаст бесконечный цикл
Этот набор правил должен работать на вас:
RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-l RewriteCond $1 !^businesspage.php RewriteRule ^wisper/(.*?)$ wisper/businesspage.php?profile=$1 [QSA,L]
Обратите внимание на RewriteCond
в 6-й строке: он сообщает mod_rewrite не переписывать wisper/businesspage.php
, избегая при этом циклов.