2015-10-28 1 views
1

У меня есть этот файл .htaccess.:Когда URL-адрес переписывается, как соответствовать любому символу Unicode?

Options +FollowSymLinks 
RewriteEngine on 
RewriteRule ^([a-zA-Z0-9]*)/?([a-zA-Z0-9]*)?/?([a-zA-Z0-9]*)?/?$ index.php?controller=$1&action=$2&id=$3 [NC,L] 

Это правило отлично работают для A-Z, A-Z и 0-9, но я хочу, чтобы правило соответствует каждому любому символу Unicode. Я попытался This:

RewriteRule ^([A-Za-z0-9_-\s]+)/?([A-Za-z0-9_-\s]+)?/?([A-Za-z0-9_-\s]+)?/?$ index.php?controller=$1&action=$2&id=$3 [NC,L] 

и This:

RewriteRule ^([\s\S]*)/?([\s\S]*)?/?([\s\S]*)?/?$ index.php?controller=$1&action=$2&id=$3 [NC,L] 

, но это не похоже на работу. Что я делаю не так?

ответ

1

Вы можете попробовать:

Options +FollowSymLinks 
RewriteEngine on 

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^([^/]*)/?([^/]*)?/?([^/]*)?/?$ index.php?controller=$1&action=$2&id=$3 [QSA,L] 
+1

Работа отлично! Большое спасибо, мой друг! – Sipo

+0

Эй, @anubhave! До сих пор он работал отлично, но внезапно я получил ошибку. До сих пор я просто использовал '$ _GET [" controller "]', '$ _GET [" action "]', '$ _GET [" id "]', не проверяя, существует ли это, потому что '.htaccess' установил его в первый место. Но вдруг это дает мне ошибку: 'Примечание: Неопределенный индекс: id'. Как я могу это исправить? – Sipo

+0

Не знаете, почему, но попробуйте: ** 'RewriteRule^([^ /] +)/([^ /] +)/([^ /] +) /? $ Index.php? Controller = $ 1 & action = $ 2 & id = $ 3 [QSA, L] '** – anubhava

Смежные вопросы