htaccess переписать URL-адреса - как мне написать URL-адреса в моем коде? - PullRequest
0 голосов
/ 10 декабря 2010

Использование apache / .htaccess RewriteEngine:

Если я хочу изменить URL-адрес, например

www.foo.com / mypage.php? Var = abc & var2 = 123

to

www.foo.com / abc / 123

Нужно ли переписывать URL-адреса в файлах PHP вручную или это также обрабатывается?

то есть, изменить в моем коде на

Может ли mod_rewrite обработать это для меня?Или он только переводит полученный URL-адрес, а не переписывает сгенерированный HTML-код на основе правил в файле .htaccess?

Ответы [ 2 ]

1 голос
/ 10 декабря 2010

Если у вас есть доступ к конфигурации сервера httpd, вы можете поместить следующий код в конфигурацию сервера Apache сервера или поместить в файл httaccess

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /mypage.php [L]
</IfModule>

и поместить следующий код в верхнюю часть файла mypage.php,

$Get_data = explode('/', $_SERVER[REQUEST_URI]);
$_GET['var'] = $Get_data[1];
$_GET['var2'] = $Get_data[2];

Теперь вы получаете тот же результат, когда используете эти www.foo.com/mypage.php?var=abc&var2=123 url или эти www.foo.com/abc/123 url.

Любые комментарии, пожалуйста, дайте мне знать.

0 голосов
/ 10 декабря 2010

Да, вы должны изменить его.

Мод перезаписывает только внутренне, перенаправляет запросы внутренне.Это меняет заголовок HTTP, который виден вашему приложению, но вы все равно сможете воспроизвести исходный URL с помощью дополнительных полей заголовка, которые защищены.Он не изменяет отправляемый вами контент.

...