Я возился с .htaccess и mod_rewrite.У меня есть сайт, который имеет два типа URL, которые я переписал:
/index.php?nav=$2
/index.php?nav=41&intNewsId=$3
- 41 статический, навигация по новостям всегда 41
Я переписал их на:
/pagename/id
/news/pagename/id
Я уже создал фрагмент кода, который работает(ниже), я получил некоторую помощь от сообщества, но странная вещь заключается в том, что http://www.mydomain.nl/projects/15 отлично работает в FF, Chrome и Safari, но дает «страницу не может быть отображена» в IE.Работает ли htaccess по-разному в разных браузерах?(Я очень сомневаюсь в этом)
Options +FollowSymlinks
RewriteEngine on
# Reroute rules that end on /
RewriteRule ^(.*)\/(\d+) /$1/$2/ [R]
# RewriteRule ^(.*)\/(.*)\/(\d+) /$1/$2/$3/ [R]
# Make the system understand pagename/96
RewriteRule ^(.*)\/(\d+)/ /index.php?nav=$2
# Make the system understand news/pagename/99
RewriteRule ^(.*)\/(.*)\/(\d+)/ /index.php?nav=41&intNewsId=$3
Я решил проблему , но я не уверен, почему это работает, а предыдущий код - нет.Я исправил две вещи: я удалил начальный / из /index.php ... Это не решило, но это меньше байтов: D
Затем я переписал правило / -rerouting, это исправило это ...
Options +FollowSymlinks
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ http://mydomain.nl/$1/ [L,R=301]
RewriteRule ^(.*)\/(\d+)/ index.php?nav=$2
RewriteRule ^(.*)\/(.*)\/(\d+)/ index.php?nav=41&intNewsId=$3
Спасибо всем!