Мне нужен URL-адрес:
http://domain.com/subfolder/file.php?src=quick-brown-fox&m=1&size=320x480
.. изменился на:
http://domain.com/subfolder/file/quick-brown-fox/320x480
Я обновил htaccess с помощью:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^/subfolder/([^\.]+)$ $1.php [NC,L]
но я получаю 404. Что я делаю неправильно?
Вы можете сделать это в подпапке /.htaccess
Options -MultiViews
RewriteEngine On
RewriteBase /subfolder/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/?(.*)$ $1.php [NC,L]
Затем запишите URI в php.
Это правило можно использовать в /subfolder/.htaccess
:
Options -MultiViews
RewriteEngine On
RewriteBase /subfolder/
RewriteRule ^(file)/([^/]+)/([^/]+)/?$ $1.php?src=$2&m=1&size=$3 [QSA,NC,L]
$request = $_SERVER['REQUEST_URI']; $params = explode("/", $request);
вfile.php
просто нужно перенаправить на этот файлexplode
и получить его напрямую, используя массив$_GET
и да,$_SERVER['REQUEST_URI']
по-прежнему доступен.