#php #.htaccess
#php #.htaccess
Вопрос:
Мне нужно иметь отдельную страницу для более чем 50 стран, и я ищу способ не иметь более 50 php-файлов для каждой страны. В идеале я хотел бы переписать:
/countries/country.php?country=usa
к этому:
/countries/usa/
В настоящее время мой .htaccess выглядит следующим образом:
ErrorDocument 404 /404.php
RewriteEngine On
#RewriteCond %{HTTPS} on
#RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/] )/$ $1.php
RewriteRule ^([^/] )/([^/] )/$ /$1/$2.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !(.[a-zA-Z0-9]{1,5}|/)$
RewriteRule (.*)$ /$1/ [R=301,L]
RewriteRule ^updates/.*.(zip)$ - [F,L,NC]
Это в основном заменяет /filename.php с помощью /filename/
Ответ №1:
Вы можете просто добавить правило, подобное этому
RewriteRule ^countries/([a-z-] )$ /countries/country.php?country=$1 [L]
Вы можете обновить регулярное выражение в соответствии с вашими потребностями.
Комментарии:
1. Примечание: Это правило, возможно, потребуется установить выше существующих правил, чтобы избежать их вмешательства. (Особенно
^([^/] )/([^/] )/$
тот, предполагая, что вы решите добавить завершающую косую черту к шаблону, чтобы получить/countries/usa/
вместо/countries/usa
.)