.htaccess переписать выводит нежелательный контент.Я думаю? - PullRequest
0 голосов
/ 18 марта 2010

Я пытаюсь переписать URL с помощью .htaccess. Я работаю на Apache версии 2.2.15.

Содержимое .htaccess:

RewriteEngine on
RewriteRule cars/(.*) cars/member_page.php?user=$1
RewriteRule cars/(.*)/ cars/member_page.php?user=$1

Содержимое member_page.php:

<?php
echo $_GET[user];
?>

URL-адрес введен в браузер:

http://www.mydomain.com/cars/user1

Браузер выводит строку «member_page.php» вместо «user1»

Как мне заставить его выводить содержимое (. *) Из исходного URL.

Ответы [ 2 ]

0 голосов
/ 18 марта 2010

Проблема с этим форматом:

RewriteEngine on
RewriteRule cars/(.*) cars/member_page.php?user=$1 [L]
RewriteRule cars/(.*)/ cars/member_page.php?user=$1 [L]

Оказывается, я переписывал автомобили / что угодно в cars / member_page.php. Это создает проблему перезаписи в тот же каталог, в котором находится перезапись.

So

cars/user1

было переписано на

cars/member_page.php/user=member_page.php

Он был переписан дважды с использованием содержимого второго перезаписи в качестве окончательной информации. Решение состоит в том, чтобы переместить member_page.php в другой каталог.

RewriteEngine on
RewriteRule cars/(.*) memberscars/member_page.php?user=$1 [L]
RewriteRule cars/(.*)/ memberscars/member_page.php?user=$1 [L]
0 голосов
/ 18 марта 2010

Ну, во-первых, это $_GET['user'], а не $_GET[user] (обратите внимание на кавычки). Относительно ваших правил mod_rewrite:

RewriteEngine On
RewriteRule cars/(.*) cars/member_page.php?user=$1 [L]
RewriteRule cars/(.*)/ cars/member_page.php?user=$1 [L]

L означает последнее применяемое правило.

...