Ось мій файл htaccess на даний момент:
Options +FollowSymLinks
RewriteEngine On
RewriteBase /blog/
ErrorDocument 404 /blog/404.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*).html$ post.php/$1.html
RewriteRule ^index$ index.php
RewriteRule ^archives$ archives.php
RewriteRule ^about$ about.php
RewriteRule ^search$ search.php
RewriteRule ^feed$ feed.php
На даний момент, якщо я піду до domain.com/blog/*.html
, він перенаправляє (у фоновому режимі) на domain.com/blog/post.php/*
Я хотів би майже скопіювати це, але я не впевнений у всьому цьому, що стосується регулярних виразів.
Я хотів би мати можливість також поїхати до domain.com/blog/admin/*
і для його перенаправлення (у фоновому режимі) на domain.com/blog/admin.php?p=*
Якби ви, хлопці, могли мені допомогти, я б це дуже вдячний!
Дякую
Відповіді:
1 для відповіді № 1Щось на зразок:
RewriteRule ^/?admin/(.*)$ admin.php?p=$1&%{QUERY_STRING} [L,NC]
Зробимо трюк.
Це робиться дуже швидко, і це не перевірено, але це дає вам ідею. Ви ставите це вище:
RewriteRule ^(.*).html$ post.php/$1.html
Редагувати: Витягнув перезапис, оскільки я щойно зрозумів, що він марний
Редагувати: додано також рядок запиту, оскільки ви фактично перетворюєте _GET зараз.
0 для відповіді № 2
Додайте кілька переглядів у перший рядок вашого .htaccess:
Options FollowSymLinks MultiViews
Потім перезапустіть apache. Він повинен вказувати адміністратора на admin.php.
Примітка. Не майте декількох файлів в одному каталозі з однаковим ім'ям та іншим розширенням.
http://httpd.apache.org/docs/2.2/mod/mod_negotiation.html