[英]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.