2016-09-21 54 views
1

因此,我在這裏喝了一點湯。使用Apache在PHP上創建一個帶有2個參數的友好URL

我需要建立一個友好的URL。

這是我進入搜索值PROJECT_NAME和版本的URL

本地主機:8080/demo_webpages_project/retrieval.html

這是它把我對提交的值

本地主機:?8080/demo_webpages_project/PROJECT_NAME的download.php 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

'[^ /] +'是否定字符類。它匹配1個或更多除'/'以外的任何字符。 – 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在線39 – siddparkar

相關問題