#apache #.htaccess #mod-rewrite
#apache #.htaccess #mod-перезапись
Вопрос:
Я использую Mod Rewrite
для создания привлекательных URL-адресов. Я пытаюсь понять, как можно игнорировать части URL-адреса?
Например, мой исходный URL-адрес был: /file.php?token=771736eb78bc3b6f96d5c066069567c0c219bf65/
И я написал код Mod Rewrite, чтобы превратить это в: /file/771736eb78bc3b6f96d5c066069567c0c219bf65/
RewriteEngine On
RewriteRule ^file/([^/]*)$ /file.php?token=$1 [L]
Тем не менее, я хотел бы получить URL-адрес, подобный:
/file/771736eb78bc3b6f96d5c066069567c0c219bf65/random-bits-here/
Случайные биты в конце не служат никакой цели (кроме украшения). Как мне указать Mod Rewrite игнорировать эту часть URL-адреса?
Ответ №1:
Просто настройте свое регулярное выражение следующим образом
RewriteRule ^file/([^/] )/?(.*)$ /file.php?token=$1 [NC,L]
Ответ №2:
Вы должны добавить вторую группу символов в свой RewriteRule и игнорировать захваченное выражение, если оно вам не нужно.
RewriteEngine On
RewriteRule ^file/([^/]*)/([^/]*)/$ /file.php?token=$1 [L]
Или, если вы хотите, чтобы он был передан вашему скрипту.:
RewriteEngine On
RewriteRule ^file/([^/]*)/([^/]*)/$ /file.php?token=$1amp;extra=$2 [L]
Ответ №3:
Просто не указывайте $
знак, который указывает конец строки (путь):
RewriteEngine On
RewriteRule ^file/([^/]*) /file.php?token=$1 [L]