На моем сайте, скажем, test.com, если кто-то посещает test.com/hello, я хочу, чтобы он перенаправлялся на test.com и передавал строковые данные после «/» (в данном случае «привет») на страницу, для пример через PHP.
Могу ли я сделать это с помощью файла .htaccess?
Вот два варианта получения нескольких параметров, сочетающих 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) Возможность использования переменной 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 в Test.php
для захвата URI-пути «/ Test.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) Возможность использования переменной 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 в Test.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) **/
Вы можете использовать Rewrite Engine
RewriteEngine On RewriteRule ^(.*)$ processor.php?url=$1