Обновление
В моем первоначальном посте я, кажется, подразумевал, что у моей переменной есть дефис. Кажется, у меня проблема с файлом htaccess, приведенным ниже, который не совпадает с дефисом, но у моего содержимого переменной $ _GET есть дефис, а не сама переменная.
оригинал
Первоначально я ссылался на http://php.net/manual/en/language.variables.variable.php, на что пользователь заявил, что невозможно связать переменную php (через $ _POST или $ _GET) с дефисом, но это было написано в 2009 году.
В одном из моих URL я разрешаю пользователям вводить уникальный идентификатор как "www.site.com/id123", который "id123" выбирается как переменная $ _GET с php. Некоторые пользователи решили использовать «www.site.com/id-123», который не работает (не обнаружена ошибка сервера, кроме страницы).
Есть идеи по этому поводу?
.htaccess
RewriteEngine On
#if file or directory do not exist, try as an unique id
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME}.php !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([0-9a-zA-Z]+)$ index?ID=$1 [QSA,NC,L]
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*)$ $1.php [QSA,L]
Если подумать подробнее, приведенное выше правило перезаписи может показаться, что может потребоваться модификация для обработки запроса дефиса. Это кажется правильным?