Хорошо ... если бы мне пришлось выполнить эти правила перезаписи, я бы сделал их так:
Options +FollowSymLinks -MultiViews
RewriteEngine On
# do not do anything for already existing files
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule .+ - [L]
# admin rewrite
RewriteRule ^admin$ admin/index.php [L]
# rewrite /contact --> /contact.php (and similar)
# add .php extension if such file does exist
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.+)$ $1.php [L]
# OR
# alternatively specify their names directly
# plus it is more precise for the example you have provided
# (that's if you need to rewrite only specific pages)
RewriteRule ^(contact|about|something)$ $1.php [L]
# /salt-lake-city/ --> /index.php?city=salt-lake-city
RewriteRule ^([^/]+)/$ index.php?city=$1 [QSA,L]
# /salt-lake-city/deals/ --> /deals.php?city=salt-lake-city
RewriteRule ^([^/]+)/deals/$ deals.php?city=$1 [QSA,L]
Для начала у меня есть:
RewriteRule ^(.*)/(.*)\.php$ $2.php?city=$1 [L]
(это обрабатывает последние 2).
Извините, но я не вижу, как "он будет обрабатывать последние 2".Я не вижу .php
в последних двух примерах URL, которые вы предоставили.
Он испортился (css не в порядке) и т. Д.посмотрим как это будет работать с моими правилами.В любом случае - это может также зависеть от того, как вы написали ссылки на css / images / js.