从URL中获取数据

时间:2013-05-12 17:08:24

标签: php html .htaccess web-applications

在我的网站上,比如test.com,如果有人访问test.com/hello,我希望它重定向到test.com并将字符串数据从'/'(在本例中为“hello”)后传递到页面,例如通过PHP。

我可以使用.htaccess文件执行此操作吗?

2 个答案:

答案 0 :(得分:0)

以下是获取组合mod_rewrite和PHP代码的多个参数的两个选项。 在根目录下的一个.htaccess文件中尝试使用此请求作为示例:

http://test.com/1/2/3

将以下代码放在.htaccess文件中:

# Rule-set starts with next 6 lines:
Options +FollowSymlinks -MultiViews
RewriteEngine On
RewriteBase /

# Exclude all requests to existing files.
RewriteCond %{REQUEST_FILENAME} -d  [OR]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule .*  -   [L]

1)在PHP中使用变量 REQUEST_URI 的选项:

# Additional 2 lines in .htaccess file  
RewriteCond %{REQUEST_URI}  !Test\.php  [NC]
## Map silently all requests to Test.php
RewriteRule .*  /Test.php               [L]

Test.php中用于捕获URI路径“/ 1/2/3”的PHP示例代码:

$URI = explode('/', $_SERVER['REQUEST_URI']);
echo var_dump($URI);
/***
Result:
array (size=4)
  0 => string '' (length=0)
  1 => string '1' (length=1)
  2 => string '2' (length=1)
  3 => string '3' (length=1)
**/

2)在PHP中使用变量 QUERY_STRING 的选项:

# Additional (Optional) 2 lines in .htaccess file  
RewriteCond %{REQUEST_URI}  !Test\.php  [NC]
## Map silently all requests to Test.php, passing the URI=Path as a query
RewriteRule ^(.*)  /Test.php?$1         [L]

Test.php中的PHP示例代码,用于捕获QUERY“1/2/3”:

$QUERY = explode('/', $_SERVER['QUERY_STRING']);
echo var_dump($QUERY);
/***
Result:
array (size=3)
  0 => string '1' (length=1)
  1 => string '2' (length=1)
  2 => string '3' (length=1)
**/

答案 1 :(得分:-1)

您可以使用重写引擎

RewriteEngine On
RewriteRule ^(.*)$ processor.php?url=$1