2010-10-10 51 views
5

Tôi muốn biết làm thế nào tôi có thể vượt qua các thông số giữa các trang thông qua URL mà không cần phải thêm các biến ví dụ:thông số PHP qua qua URL

mydomain.com/file.php?var1=val1&var2=val2&...varN=valN 

Tôi muốn sử dụng nó như sau:

mydomain.com/file.php?val1-val2-...-valN 

Tôi cũng thấy trong một số trang web URL có định dạng sau

mydomain.com/file/#### 

chuyển hướng đến trang khác mà không cần thay đổi nhập URL như thể đây là URL của tệp.

Trả lời

12

Bạn nên sử dụng .htaccess

Dưới đây là một ví dụ:

Options +FollowSymLinks 
RewriteEngine On 

RewriteRule ^([0-9-_]+)/([a-zA-Z0-9-_]+)/?$ index.php?var1=$1&var2=$2 [NC,L] 

này về cơ bản có nghĩa là nếu các URL được định dạng theo biểu thức thông thường ở trên (số - slash - chữ và số, dấu gạch ngang hoặc gạch dưới) so với nội dung sẽ được hiển thị từ index.php trong khi truyền tệp hai tham số được gọi là var1 và var2, var1 có giá trị của số và giá trị thứ hai có giá trị của giá trị sau dấu gạch chéo đầu tiên.

Ví dụ:

mysite.com/20/this_is_a_new_article/ 

có thực sự có nghĩa

mysite.com?var1=20&var2=this_is_a_new_article 

Tất nhiên, trong file index.php của bạn, bạn chỉ có thể mất các giá trị sử dụng

$var1 = $_GET['var1']; 
$var2 = $_GET['var2']; 

Cheers!

+0

Tôi đã đọc ở đâu đó điều này được thực hiện bởi PHP và tôi thấy một ví dụ nhưng tôi không thể tìm thấy nó sau khi tôi thay đổi PC của tôi: (... đó là lý do tại sao tôi muốn làm điều đó bằng cách sử dụng PHP ... những gì tôi hãy nhớ về nó mà nó sử dụng chức năng phát nổ ... – sikas

+1

Bạn có thể làm điều đó với PHP, nhưng tôi sẽ không khuyên bạn nên nó. Dù sao, bạn chỉ có thể sử dụng $ _SERVER ['REQUEST_URI'] và phát nổ kết quả. '/', $ _SERVER ['REQUEST_URI']); Điều này sẽ trả lại một mảng mà bạn có thể sử dụng. Tuy nhiên, bạn cần htaccess để chuyển hướng mọi URL đến trang mà bạn đặt mã này. Bạn cũng có thể sử dụng http: // ie.php.net/manual/en/function.parse-url.php – Claudiu

+0

Hey bt nếu tôi vượt qua chỉ một tham số trong URL thay vì 2 nó cho thấy lỗi 404. Điều gì có thể là giải pháp cho điều đó? coz đôi khi tôi muốn vượt qua 1 biến đôi khi 2 hoặc nhiều hơn thì sao? –

0

Ví dụ thứ ba của bạn là ví dụ về cách REST xác định tài nguyên phía máy chủ. Những gì bạn đang nói về ở đây nghe rất giống với REST sẽ làm những gì bạn muốn. Tôi sẽ đề nghị bắt đầu từ đây (http://en.wikipedia.org/wiki/Representational_State_Transfer#RESTful_web_services).

Các vấn đề liên quan