簡體   English   中英

使用 Apache 在 PHP 上創建帶有 2 個參數的友好 URL

[英]Make a friendly URL with 2 parameters on PHP with Apache

所以我在這里有點湯。

我需要制作一個友好的網址。

這是我輸入搜索值 project_name 和 version 的 URL

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

這是我提交值的地方

本地主機:8080/demo_webpages_project/download.php?project_name=QT&version=3.1.2

我想要以下形式的 URL

本地主機:8080/demo_webpages_project/download/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>

如果有人能幫我解決這個問題,我將不勝感激。 這是我第一次在這方面工作並且迷失了。

謝謝

/demo_webpages_project/有這個 .htaccess :

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]

根據這篇文章,您需要一個看起來像這樣的 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'
?>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM