2010-04-16 6 views
0

я URLs какперезаписи URL index.php

http://mysite.com/index.php?p=resources 
http://mysite.com/index.php?p=resources&s=view&id=938 

, но я хочу URLs как

http://mysite.com/resources 
http://mysite.com/resources/view/938 

вместо того, чтобы сотни правил перезаписи Интересно, если это будет возможно только один? Ive head это возможно, «получив uri и разбив его на части», а затем просто добавьте правило перезаписи для index.php

но как? может кто-нибудь дать пример или ссылку обучающую

ответ

4

я случайно использовать это в .htaccess:

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-l 

RewriteRule .* index.php [L] 

В сущности, это не вызывает index.php, независимо от того, что требуется. Затем внутри вашего PHP-кода вы можете посмотреть $ _SERVER ['REQUEST_URI'], чтобы получить URL-адрес и проанализировать его соответствующим образом.

Линии RewriteCond предназначены для исключения прямых вызовов файлов. В моем случае я не хочу, чтобы такие вещи, как запросы на файлы js/css/image, проходили через index.php по соображениям производительности.

2

Создайте файл .htaccess. Не somefilename.htaccess, он просто называется .htaccess.
Примечание. Ваш файл index.php и .htaccess должен находиться в одном каталоге.

Теперь попробуйте это на файл .htaccess

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^([A-Za-z0-9\-]+)$ index.php?p=resources
RewriteRule ^([A-Za-z0-9\-]+)/([A-Za-z0-9\-]+)/([0-9]+)$ index.php?p=resources&s=view&id=938
</IfModule>

увидеть больше о URL Rewrite here

Смежные вопросы