从内部URL获取数据数据、URL

2023-09-02 09:38:24 作者:漓殇

在我的网站上,说test.com,如果有人访问test.com/hello我希望它重定向到test.com,并从后字符串传递数据的/(在这种情况下,你好)进入页面,例如通过PHP。

On my website, say test.com, if someone visits test.com/hello I want it to redirect to test.com and pass the string data from after the '/' (in this case "hello") into the page, for example through PHP.

我能做到这一点的,.htaccess文件?

Could I do this with a .htaccess file?

推荐答案

下面有2个选项来获得多个参数组合的mod_rewrite 和PHP code。 试试这个在根目录中选择一个.htaccess文件,使用该请求作为一个例子:

Here are 2 options to get multiple parameters combining mod_rewrite and PHP code. Try this in one .htaccess file at root directory, using this request as an example:

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

将下面的code在.htaccess文件中:

Put the following code in the .htaccess file:

# 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)选项使用变量 REQUEST_URI 在PHP中:

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

PHP例如code。在的test.php 来捕捉URI路径/ 1/2/3:

PHP example code in Test.php to capture URI-path "/1/2/3":

$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)选项使用变量 QUERY_STRING 在PHP中:

# 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]

PHP例如code。在的test.php 来捕获查询1/2/3:

PHP example code in Test.php to capture 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)
**/