#apache #.htaccess #mod-rewrite #url-rewriting
#apache #.htaccess #мод-перезапись #url-перезапись
Вопрос:
вот мой пример URL:
http://mydomain.com/folder/subfolder/index.php?site=www.othersite.com
я хочу переписать его таким образом:
http://mydomain.com/folder/subfolder/www.othersite.com
я пытался
RewriteEngine on
RewriteBase /folder/subfolder/
RewriteRule ^([A-Za-z0-9\-\.] )$ index.php?site=$1 [L]
я напечатал массив $_GET и возвращает значение параметра ‘site’ как ‘index.php ‘, оно не вернулось’www.othersite.com ‘
как это можно сделать?
Спасибо,
Комментарии:
1. Для использования . в регулярном выражении вы можете экранировать его с помощью . но в вашем случае я не понимаю, в чем ваша проблема с точками.
2. RewriteRule ^([A-Za-z0-9-_-] )$ index.php?site=$1 [L] это отлично работает, если значение параметра ‘site’ не имеет . (точка или точка)
3. Извините, я неправильно понял ваше требование и ранее предоставил вам противоположное решение. Пожалуйста, смотрите мой ответ ниже, у вас это должно сработать.
Ответ №1:
Попробуйте это правило в вашем файле .htaccess:
Options FollowSymlinks -MultiViews
RewriteEngine on
RewriteCond %{QUERY_STRING} !^site= [NC]
RewriteRule ^(folder/subfolder)/(.*)$ /$1/index.php?site=$2 [L,NC,QSA]