2016-09-21 2 views
1

Итак, я здесь немного супа.Сделайте дружественный URL с 2 параметрами на PHP с Apache

Мне нужно сделать дружественный URL.

Это URL, где я ввожу значения поиска PROJECT_NAME и версию

локальный: 8080/demo_webpages_project/retrieval.html

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

Localhost : 8080/demo_webpages_project/download.php project_name = QT & версия 3.1.2 =

Я хочу URL в следующей форме

локальный: 8080/demo_webpages_project/загрузить/QT/3.1.2

Я пытался делать это с помощью .htaccess, но на самом деле не найти решение

Ниже приведен код файла .htaccess.

<IfModule mod_rewrite.c> 
#Turn the engine on 
RewriteEngine on 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 

#attempt1 
#RewriteRule ^(.*)/$ download.php?project_name=$1&version=$1 
#RewriteRule ^/(.*)$ download.php?version=$1 

#attempt2 
#RewriteRule ^(.*)/(.*)$ download.php?project_name=$1&version=$2 [L,NC,QSA] 
#RewriteRule ^(.*)$ download.php?version=$1 

</IfModule> 

Я был бы очень благодарен, если бы кто-то мог мне помочь. Это первый раз, когда я над чем-то работаю, и я потерялся.

Благодаря

+0

Этот ответ может помочь вам http://stackoverflow.com/questions/812571/how-to-create-friendly-url-in-php – Eli

+0

http://edinteractive.co.uk/дружественный URL-с помощью PHP- -and-htaccess/ –

+0

@Eli Я попытался использовать все указанные методы, нигде не смог найти дружественный URL-адрес, успешно обработанный для двух параметров. – siddparkar

ответ

0

Имейте это. Htaccess внутри /demo_webpages_project/:

Options -MultiViews 
RewriteEngine on 
RewriteBase /demo_webpages_project/ 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^([^/]+)/([^/]+)/?$ download.php?project_name=$1&version=$2 [L,QSA] 
+1

Большое вам спасибо! Это сработало! Мне не хватает части RewriteBase! – siddparkar

+0

Готово. Если не слишком много проблем, не могли бы вы рассказать, как работает регулярное выражение? Благодаря! – siddparkar

+0

'[^ /] +' - отрицательный класс символов. Он соответствует одному или нескольким символам, кроме '/'. – anubhava

0

В соответствии с этим article вы хотите mod_rewrite (размещенный в файле .htaccess) правило, которое выглядит примерно так:

RewriteEngine on 
RewriteRule ^/news/([0-9]+)\.html /news.php?news_id=$1 

И это отображает запросы от

/news.php?news_id=63 

до

/news/63.html 

Другая возможность делает это с использованием forcetype, что заставляет что-то пропустить определенный путь для использования php для оценки содержимого. Таким образом, в файле .htaccess, поместите следующее:

<Files news> 
    ForceType application/x-httpd-php 
</Files> 

И тогда index.php может принять решение на основе переменной $ _SERVER [ 'PATH_INFO']:

<?php 
    echo $_SERVER['PATH_INFO']; 
    // outputs '/63.html' 
?> 
+0

Здравствуйте, я тоже пробовал следующее: # 3 #RewriteRule /download.php/(.*)$/download.php/download.php? project_name = $ 1 & version = $ 2 # 4 \t RewriteRule^demo_webpages_project/download.php/([a-z _] +)/([a-z0-9 _-] +) $/demo_webpages_project/download.php? project_name = $ 1 & version = $ 2 – siddparkar

+0

Ни одна из них не работает.Я получаю эти ошибки. Уведомление: неопределенный индекс: имя_проекта в C: \ Apache24 \ htdocs \ demo_webpages_project \ download.php в строке 38 Примечание: Неопределенный индекс: версия в C: \ Apache24 \ htdocs \ demo_webpages_project \ download.php on line 39 – siddparkar

Смежные вопросы