2013-05-16 2 views
2

Это мой .htaccess файл:Htaccess правило перезаписи с несколькими параметрами

Options +FollowSymLinks 
Options -Multiviews 

RewriteEngine On 
RewriteBase /website/ 

RewriteCond %{REQUEST_FILENAME} -d [OR] 
RewriteCond %{REQUEST_FILENAME} -f 
RewriteRule .? - [S=20] 

RewriteRule ^(.*)$ $1.php 
RewriteRule ^([a-z0-9_-]+)/([a-z0-9_-]+)(/)?$ index.php?occ=$1&cat=$2 

теперь эти 2 линии вместе не работают, например:

, если я пойду в contact.php, я напечатал бы в моей URL: LOCALHOST/сайте/контакте и он будет работать

однако, если я хочу пойти в местоположении/сайт/index.php OCC = & случай кошки = категорию, введя это в моей URL: локальный/сайте/occasio п/категория будет работать только если удалить первое правило перезаписи

, но тогда я не могу пойти на локальный/сайт/контакт больше

, что я здесь отсутствует?

ответ

5

Ваша проблема в вашем заказе.

/website/occasion/category сначала переписывается как /website/occasion/category.php, который затем не соответствует второму правилу.

RewriteRule ^([a-z0-9_-]+)/([a-z0-9_-]+)(/)?$ index.php?occ=$1&cat=$2 [L] 
RewriteRule ^(.*)$ $1.php 

Изменение порядка и добавление параметра [L] правилу (прекратить выполнение правил Followup после успешного выполнения) должно решить проблему.

+0

во: O спасибо, что работало – Bolas

0
RewriteEngine on 

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

RewriteRule ^site_1/(.*)$ site_1/index.php?/$1 [L] 
RewriteRule ^site_2/(.*)$ site_2/index.php?/$1 [L] 

, как в местах, вы не будете иметь 1000s сайтов вы можете объявить ссылку желание и имя папки например если ваша структура

/home/site1, /home/site2 

и ссылки будут как http://yourdomain.com/medical & http://yourdomain.com/entertainment

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